Hi all, I've reached the end of my cmake knowledge, and need a bit of help.
I've improved the error handling in the tests to tell us what's wrong. Cmake wants to build in a not-source-directory, but some tests assume they are being run from the source directory. I don't know the correct cmake way to handle this. Copy the data files? Support an environment variable prefix? Not sure. 22/52 Test #22: testmmap .........................***Failed 0.02 sec testmmap : apr_file_open() failed: D:/a/apr/apr/build/data/mmap_large_datafile.txt: The system cannot find the file specified. Line 110: expected <0>, but saw <720002> SKIP: Line 119: File not open, skipping filesize test. SKIP: Line 146: File not open, skipping read. SKIP: Line 182: File not open, skipping mmap create. Line 201: expected non-NULL, but saw NULL SKIP: Line 204: MMap not open, skipping size comparison. SKIP: Line 244: MMap not open, skipping mmap offset. SKIP: Line 221: MMap not open, skipping mmap delete. SKIP: Line 81: File not open, skipping file close. apr_file_open() failed: D:/a/apr/apr/build/data/mmap_large_datafile.txt: The system cannot find the file specified. Line 110: expected <0>, but saw <720002> SKIP: Line 119: File not open, skipping filesize test. SKIP: Line 146: File not open, skipping read. SKIP: Line 182: File not open, skipping mmap create. Line 201: expected non-NULL, but saw NULL SKIP: Line 204: MMap not open, skipping size comparison. SKIP: Line 244: MMap not open, skipping mmap offset. SKIP: Line 221: MMap not open, skipping mmap delete. SKIP: Line 81: File not open, skipping file close. SKIPPED 14 of 27 FAILED 4 of 27 The second cmake failure is this one in apr-util: LINK Pass 1: command "C:\PROGRA~1\MICROS~2\2022\ENTERP~1\VC\Tools\MSVC\1443~1.348\bin\Hostx64\x64\link.exe /nologo CMakeFiles\testall.dir\test\abts.c.obj CMakeFiles\testall.dir\test\testutil.c.obj CMakeFiles\testall.dir\test\testbuckets.c.obj CMakeFiles\testall.dir\test\testbuffer.c.obj CMakeFiles\testall.dir\test\testcrypto.c.obj CMakeFiles\testall.dir\test\testdate.c.obj CMakeFiles\testall.dir\test\testdbd.c.obj CMakeFiles\testall.dir\test\testdbm.c.obj CMakeFiles\testall.dir\test\testjson.c.obj CMakeFiles\testall.dir\test\testjose.c.obj CMakeFiles\testall.dir\test\testldap.c.obj CMakeFiles\testall.dir\test\testmd4.c.obj CMakeFiles\testall.dir\test\testmd5.c.obj CMakeFiles\testall.dir\test\testmemcache.c.obj CMakeFiles\testall.dir\test\testpass.c.obj CMakeFiles\testall.dir\test\testqueue.c.obj CMakeFiles\testall.dir\test\testredis.c.obj CMakeFiles\testall.dir\test\testreslist.c.obj CMakeFiles\testall.dir\test\testrmm.c.obj CMakeFiles\testall.dir\test\testsiphash.c.obj CMakeFiles\testall.dir\test\teststrmatch.c.obj CMakeFiles\testall.dir\test\testuri.c.obj CMakeFiles\testall.dir\test\testuuid.c.obj CMakeFiles\testall.dir\test\testxlate.c.obj CMakeFiles\testall.dir\test\testxml.c.obj /out:testall.exe /implib:testall.lib /pdb:testall.pdb /version:0.0 /machine:x64 /debug /INCREMENTAL /subsystem:console libaprutil-1.lib D:\a\apr-util\apr-util\install\lib\libapr-1.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST /MANIFESTFILE:CMakeFiles\testall.dir/intermediate.manifest CMakeFiles\testall.dir/manifest.res" failed (exit code 1120) with the following output: testldap.c.obj : error LNK2019: unresolved external symbol __imp_ldap_unbind_s referenced in function test_legacy_ldap_connection testldap.c.obj : error LNK2019: unresolved external symbol __imp_ldap_set_option referenced in function test_legacy_ldap_connection testldap.c.obj : error LNK2019: unresolved external symbol __imp_ldap_simple_bind_s referenced in function test_legacy_ldap_connection testldap.c.obj : error LNK2019: unresolved external symbol __imp_ldap_err2string referenced in function test_legacy_ldap_connection testall.exe : fatal error LNK1120: 4 unresolved externals The legacy apr-util v1.7 testall.exe (but not the trunk one) needs to be linked to the LDAP library on Windows for the legacy tests to compile. Not sure of the correct way to do that. Can someone who knows cmake take a look if possible? Regards, Graham --