include_directories( ${CMAKE_CURRENT_BINARY_DIR} ${CMake_BINARY_DIR}/Source ${CMake_SOURCE_DIR}/Source ${CMake_SOURCE_DIR}/Source/CTest ) set(CMakeLib_TESTS testArgumentParser.cxx testCTestBinPacker.cxx testCTestResourceAllocator.cxx testCTestResourceSpec.cxx testCTestResourceGroups.cxx testDebug.cxx testGccDepfileReader.cxx testGeneratedFileStream.cxx testJSONHelpers.cxx testRST.cxx testRange.cxx testOptional.cxx testString.cxx testStringAlgorithms.cxx testSystemTools.cxx testUTF8.cxx testXMLParser.cxx testXMLSafe.cxx testFindPackageCommand.cxx testUVHandlePtr.cxx testUVJobServerClient.cxx testUVProcessChain.cxx testUVRAII.cxx testUVStreambuf.cxx testCMExtMemory.cxx testCMExtAlgorithm.cxx testCMExtEnumSet.cxx testList.cxx testCMakePath.cxx ) if(CMake_ENABLE_DEBUGGER) list(APPEND CMakeLib_TESTS testDebuggerAdapter.cxx testDebuggerAdapterPipe.cxx testDebuggerBreakpointManager.cxx testDebuggerVariables.cxx testDebuggerVariablesHelper.cxx testDebuggerVariablesManager.cxx testDebuggerThread.cxx ) endif() if (CMake_TEST_FILESYSTEM_PATH OR NOT CMake_HAVE_CXX_FILESYSTEM) list(APPEND CMakeLib_TESTS testCMFilesystemPath.cxx) endif() add_executable(testUVProcessChainHelper testUVProcessChainHelper.cxx) target_link_libraries(testUVProcessChainHelper CMakeLib) set(testRST_ARGS ${CMAKE_CURRENT_SOURCE_DIR}) set(testUVProcessChain_ARGS $) set(testUVStreambuf_ARGS $) set(testCTestResourceSpec_ARGS ${CMAKE_CURRENT_SOURCE_DIR}) set(testGccDepfileReader_ARGS ${CMAKE_CURRENT_SOURCE_DIR}) if(WIN32) list(APPEND CMakeLib_TESTS testVisualStudioSlnParser.cxx ) configure_file(testVisualStudioSlnParser.h.in testVisualStudioSlnParser.h @ONLY) endif() configure_file(testXMLParser.h.in testXMLParser.h @ONLY) file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/testUVProcessChainInput.txt" "HELLO WORLD!") create_test_sourcelist(CMakeLib_TEST_SRCS CMakeLibTests.cxx ${CMakeLib_TESTS}) add_executable(CMakeLibTests ${CMakeLib_TEST_SRCS}) target_link_libraries(CMakeLibTests PRIVATE CTestLib CMakeLib) if(CMake_BUILD_PCH) target_precompile_headers(CMakeLibTests PRIVATE "" "") target_compile_definitions(CMakeLibTests PRIVATE "NOMINMAX") endif() if(WIN32) target_compile_definitions(CMakeLibTests PRIVATE WIN32_LEAN_AND_MEAN) endif() set_property(TARGET CMakeLibTests PROPERTY C_CLANG_TIDY "") set_property(TARGET CMakeLibTests PROPERTY CXX_CLANG_TIDY "") add_executable(testEncoding testEncoding.cxx) target_link_libraries(testEncoding cmsys) foreach(testfile ${CMakeLib_TESTS}) get_filename_component(test "${testfile}" NAME_WE) add_test(NAME CMakeLib.${test} COMMAND CMakeLibTests ${test} ${${test}_ARGS}) endforeach() if(TEST_CompileCommandOutput) add_executable(runcompilecommands run_compile_commands.cxx) target_link_libraries(runcompilecommands CMakeLib) endif() add_subdirectory(PseudoMemcheck) add_executable(testAffinity testAffinity.cxx) target_link_libraries(testAffinity CMakeLib) if(CMake_ENABLE_DEBUGGER) add_executable(testDebuggerNamedPipe testDebuggerNamedPipe.cxx) target_link_libraries(testDebuggerNamedPipe PRIVATE CMakeLib) set(testDebuggerNamedPipe_Project_ARGS "$" ${CMAKE_CURRENT_SOURCE_DIR}/DebuggerSample ${CMAKE_CURRENT_BINARY_DIR}/DebuggerSample ) set(testDebuggerNamedPipe_Script_ARGS "$" ${CMAKE_CURRENT_SOURCE_DIR}/DebuggerSample/script.cmake ) foreach(case Project Script) add_test(NAME CMakeLib.testDebuggerNamedPipe-${case} COMMAND testDebuggerNamedPipe ${testDebuggerNamedPipe_${case}_ARGS}) set_property(TEST CMakeLib.testDebuggerNamedPipe-${case} PROPERTY TIMEOUT 300) endforeach() if(WIN32) target_compile_definitions(testDebuggerNamedPipe PRIVATE WIN32_LEAN_AND_MEAN) endif() endif()