diff options
Diffstat (limited to 'Tests')
-rw-r--r-- | Tests/FindOpenMP/Test/CMakeLists.txt | 1 | ||||
-rw-r--r-- | Tests/RunCMake/Framework/FrameworkTypeSHARED-build-stdout.txt | 3 | ||||
-rw-r--r-- | Tests/RunCMake/Framework/FrameworkTypeSTATIC-build-stdout.txt | 3 | ||||
-rw-r--r-- | Tests/RunCMake/Framework/RunCMakeTest.cmake | 2 | ||||
-rw-r--r-- | Tests/RunCMake/project/RunCMakeTest.cmake | 1 | ||||
-rw-r--r-- | Tests/RunCMake/project/VersionMax.cmake | 32 |
6 files changed, 37 insertions, 5 deletions
diff --git a/Tests/FindOpenMP/Test/CMakeLists.txt b/Tests/FindOpenMP/Test/CMakeLists.txt index 2692947..ebdb6b8 100644 --- a/Tests/FindOpenMP/Test/CMakeLists.txt +++ b/Tests/FindOpenMP/Test/CMakeLists.txt @@ -42,6 +42,7 @@ foreach(c C CXX Fortran) separate_arguments(_OpenMP_${c}_OPTIONS NATIVE_COMMAND "${OpenMP_${c}_FLAGS}") target_compile_options(test_var_${c} PRIVATE "${_OpenMP_${c}_OPTIONS}") target_link_libraries(test_var_${c} PRIVATE "${OpenMP_${c}_FLAGS}") + target_include_directories(test_var_${c} PRIVATE ${OpenMP_${c}_INCLUDE_DIRS}) set_property(TARGET test_var_${c} PROPERTY LINKER_LANGUAGE ${c}) add_test(NAME test_var_${c} COMMAND test_var_${c}) diff --git a/Tests/RunCMake/Framework/FrameworkTypeSHARED-build-stdout.txt b/Tests/RunCMake/Framework/FrameworkTypeSHARED-build-stdout.txt index f664db9..4a92a45 100644 --- a/Tests/RunCMake/Framework/FrameworkTypeSHARED-build-stdout.txt +++ b/Tests/RunCMake/Framework/FrameworkTypeSHARED-build-stdout.txt @@ -1,3 +1,2 @@ -.*/Framework:( Mach-O universal binary with [^ -]*)? Mach-O[^ +.*/Framework( \(for architecture [^\)]+\))?:[ ]+Mach-O[^ ]* dynamically linked shared library.* diff --git a/Tests/RunCMake/Framework/FrameworkTypeSTATIC-build-stdout.txt b/Tests/RunCMake/Framework/FrameworkTypeSTATIC-build-stdout.txt index 4b5f761..dd64717 100644 --- a/Tests/RunCMake/Framework/FrameworkTypeSTATIC-build-stdout.txt +++ b/Tests/RunCMake/Framework/FrameworkTypeSTATIC-build-stdout.txt @@ -1,2 +1 @@ -/Framework: (Mach-O universal binary with [^ -]*)?current ar archive random library +/Framework( \(for architecture [^\)]+\))?:[ ]+current ar archive random library diff --git a/Tests/RunCMake/Framework/RunCMakeTest.cmake b/Tests/RunCMake/Framework/RunCMakeTest.cmake index c7e1319..965fbf4 100644 --- a/Tests/RunCMake/Framework/RunCMakeTest.cmake +++ b/Tests/RunCMake/Framework/RunCMakeTest.cmake @@ -25,7 +25,7 @@ function(framework_type_test Toolchain Type UseProperty) set(RunCMake_TEST_NO_CLEAN 1) set(RunCMake_TEST_OPTIONS "-DCMAKE_TOOLCHAIN_FILE=${RunCMake_SOURCE_DIR}/${Toolchain}.cmake") list(APPEND RunCMake_TEST_OPTIONS "-DFRAMEWORK_TYPE=${Type}") - if(NOT ${UseProperty}) + if(NOT UseProperty) list(APPEND RunCMake_TEST_OPTIONS "-DCMAKE_FRAMEWORK=YES") endif() diff --git a/Tests/RunCMake/project/RunCMakeTest.cmake b/Tests/RunCMake/project/RunCMakeTest.cmake index 8f43a51..6914699 100644 --- a/Tests/RunCMake/project/RunCMakeTest.cmake +++ b/Tests/RunCMake/project/RunCMakeTest.cmake @@ -22,6 +22,7 @@ run_cmake(VersionInvalid) run_cmake(VersionMissingLanguages) run_cmake(VersionMissingValueOkay) run_cmake(VersionTwice) +run_cmake(VersionMax) run_cmake(CMP0048-OLD) run_cmake(CMP0048-OLD-VERSION) diff --git a/Tests/RunCMake/project/VersionMax.cmake b/Tests/RunCMake/project/VersionMax.cmake new file mode 100644 index 0000000..e955364 --- /dev/null +++ b/Tests/RunCMake/project/VersionMax.cmake @@ -0,0 +1,32 @@ +cmake_policy(SET CMP0048 NEW) +cmake_policy(SET CMP0096 OLD) + +enable_language(C) +include(CheckTypeSize) +check_type_size(unsigned __sizeOfUnsigned BUILTIN_TYPES_ONLY LANGUAGE C) + +# We can't use math() to compute this because it only supports up to +# 64-bit signed integers, so hard-code the types we expect to encounter +if(__sizeOfUnsigned EQUAL 0) + message(STATUS "Multi-architecture build, skipping project version check") + return() +elseif(__sizeOfUnsigned EQUAL 4) + set(maxVal 4294967295) +elseif(__sizeOfUnsigned EQUAL 8) + set(maxVal 18446744073709551615) +else() + message(FATAL_ERROR + "Test needs to be updated for unsigned integer size ${__sizeOfUnsigned}") +endif() + +# The real value of this test is when an address sanitizer is enabled. +# It catches situations where the size of the buffer used to compute or +# hold the version components as strings is too small. +project(ProjectA VERSION ${maxVal}.${maxVal}.${maxVal}.${maxVal} LANGUAGES NONE) + +if(NOT ${PROJECT_VERSION_MAJOR} EQUAL ${maxVal}) + message(FATAL_ERROR "Project version number parsing failed round trip.\n" + "Expected: ${maxVal}\n" + "Computed: ${PROJECT_VERSION_MAJOR}" + ) +endif() |