- Windows libraries (DLLs) are runtime. Set RUNTIME_OUTPUT_DIRECTORY, in order for Windows to pick up the DLL when running gl_basic_test. - gl_basic_test - add OUTPUT_DIRECTORY otherwise we end up with missing DLL and cannot run it. - Execute the target rather than constructing the path/binary name, drop unneeded DEPENDS as well. - Use target_link_libraries over depreciated link_libraries.
With these changes 'make check' and 'make check-func' no longer blows up for Windows platforms and it even passes everything but test_wcore_error_thread_local. The test most likely fails as we create a new thread rather than fork() the process. The latter does not have any straight-forward equivalent and most of the current implementations use undocumented Win32 API. Signed-off-by: Emil Velikov <[email protected]> --- src/waffle/CMakeLists.txt | 6 +++--- tests/functional/CMakeLists.txt | 20 +++++++++++++------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/src/waffle/CMakeLists.txt b/src/waffle/CMakeLists.txt index be3d5e4..06fd64a 100644 --- a/src/waffle/CMakeLists.txt +++ b/src/waffle/CMakeLists.txt @@ -196,7 +196,8 @@ target_link_libraries(${waffle_libname} ${waffle_libdeps}) set_target_properties(${waffle_libname} PROPERTIES PREFIX "lib" - LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib + LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib" + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib" SOVERSION ${waffle_soversion} VERSION ${waffle_soversion}.${waffle_minor_version}.${waffle_patch_version} ) @@ -259,8 +260,7 @@ function(add_unittest unittest_name) waffle_static ) add_custom_target(${unittest_name}_run - DEPENDS ${unittest_name} - COMMAND "${CMAKE_BINARY_DIR}/tests/${unittest_name}" + COMMAND "${unittest_name}" ) add_dependencies(check ${unittest_name}_run) endfunction() diff --git a/tests/functional/CMakeLists.txt b/tests/functional/CMakeLists.txt index 23618fc..d8928f0 100644 --- a/tests/functional/CMakeLists.txt +++ b/tests/functional/CMakeLists.txt @@ -1,8 +1,3 @@ -link_libraries( - ${waffle_libname} - waffle_test - ) - set(gl_basic_test_sources gl_basic_test.c ) @@ -34,9 +29,20 @@ add_executable(gl_basic_test ${gl_basic_test_sources} ) +# Ensure that the executable is in the same folder as the library it's linke +# against. Otherwise Windows will fail to load the DLL, and the test will fa +set_target_properties(gl_basic_test + PROPERTIES + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib" +) + +target_link_libraries(gl_basic_test + ${waffle_libname} + waffle_test + ) + add_custom_target(gl_basic_test_run - DEPENDS gl_basic_test - COMMAND ${CMAKE_BINARY_DIR}/tests/functional/gl_basic_test + COMMAND gl_basic_test ) add_dependencies(check-func gl_basic_test_run) -- 2.0.2 _______________________________________________ waffle mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/waffle

