diff options
Diffstat (limited to 'Tests/Module')
-rw-r--r-- | Tests/Module/WriteCompilerDetectionHeader/CMakeLists.txt | 22 | ||||
-rw-r--r-- | Tests/Module/WriteCompilerDetectionHeader/main.c | 29 | ||||
-rw-r--r-- | Tests/Module/WriteCompilerDetectionHeader/main_multi.c | 29 |
3 files changed, 80 insertions, 0 deletions
diff --git a/Tests/Module/WriteCompilerDetectionHeader/CMakeLists.txt b/Tests/Module/WriteCompilerDetectionHeader/CMakeLists.txt index e70a977..c538280 100644 --- a/Tests/Module/WriteCompilerDetectionHeader/CMakeLists.txt +++ b/Tests/Module/WriteCompilerDetectionHeader/CMakeLists.txt @@ -84,6 +84,15 @@ if (CMAKE_C_COMPILER_ID STREQUAL "GNU" add_executable(C_undefined c_undefined.c) set_property(TARGET C_undefined PROPERTY C_STANDARD 90) target_compile_options(C_undefined PRIVATE -Werror=undef) + + add_executable(WriteCompilerDetectionHeader_C main.c) + set_property(TARGET WriteCompilerDetectionHeader_C PROPERTY C_STANDARD 90) + set_defines(WriteCompilerDetectionHeader_C "EXPECTED_COMPILER_C_FUNCTION_PROTOTYPES" "EXPECTED_COMPILER_C_RESTRICT") + + add_executable(WriteCompilerDetectionHeader_C_multi main_multi.c) + set_property(TARGET WriteCompilerDetectionHeader_C_multi PROPERTY C_STANDARD 90) + set_defines(WriteCompilerDetectionHeader_C_multi "EXPECTED_COMPILER_C_FUNCTION_PROTOTYPES" "EXPECTED_COMPILER_C_RESTRICT") + target_include_directories(WriteCompilerDetectionHeader_C_multi PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/compiler_multi_files) endif() add_executable(WriteCompilerDetectionHeader main.cpp) @@ -130,3 +139,16 @@ add_executable(multi_files_11 multi_files.cpp) set_property(TARGET multi_files_11 PROPERTY CXX_STANDARD 11) target_include_directories(multi_files_11 PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/compiler_multi_files) set_defines(multi_files_11 "${true_defs}" "${false_defs}") + +if (CMAKE_C_COMPILER_ID STREQUAL "GNU" + OR CMAKE_C_COMPILER_ID STREQUAL "Clang" + OR CMAKE_C_COMPILER_ID STREQUAL "AppleClang") + add_executable(WriteCompilerDetectionHeader_C11 main.c) + set_property(TARGET WriteCompilerDetectionHeader_C11 PROPERTY C_STANDARD 11) + set_defines(WriteCompilerDetectionHeader_C11 "EXPECTED_COMPILER_C_FUNCTION_PROTOTYPES;EXPECTED_COMPILER_C_RESTRICT" "") + + add_executable(WriteCompilerDetectionHeader_C11_multi main_multi.c) + set_property(TARGET WriteCompilerDetectionHeader_C11_multi PROPERTY C_STANDARD 11) + set_defines(WriteCompilerDetectionHeader_C11_multi "EXPECTED_COMPILER_C_FUNCTION_PROTOTYPES;EXPECTED_COMPILER_C_RESTRICT" "") + target_include_directories(WriteCompilerDetectionHeader_C11_multi PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/compiler_multi_files) +endif() diff --git a/Tests/Module/WriteCompilerDetectionHeader/main.c b/Tests/Module/WriteCompilerDetectionHeader/main.c new file mode 100644 index 0000000..9023b0f --- /dev/null +++ b/Tests/Module/WriteCompilerDetectionHeader/main.c @@ -0,0 +1,29 @@ + +#include "test_compiler_detection.h" + +#if !defined(TEST_COMPILER_C_FUNCTION_PROTOTYPES) || !TEST_COMPILER_C_FUNCTION_PROTOTYPES +# error Expected TEST_COMPILER_C_FUNCTION_PROTOTYPES +#endif + +#if !EXPECTED_COMPILER_C_FUNCTION_PROTOTYPES +# error Expected EXPECTED_COMPILER_C_FUNCTION_PROTOTYPES +#endif + +#if !defined(TEST_COMPILER_C_RESTRICT) || !TEST_COMPILER_C_RESTRICT +# if EXPECTED_COMPILER_C_RESTRICT +# error Expected TEST_COMPILER_C_RESTRICT +# endif +#else +# if !EXPECTED_COMPILER_C_RESTRICT +# error Expect no TEST_COMPILER_C_RESTRICT +# endif +#endif + +#ifdef TEST_COMPILER_CXX_STATIC_ASSERT +#error Expect no CXX features defined +#endif + +int main() +{ + return 0; +} diff --git a/Tests/Module/WriteCompilerDetectionHeader/main_multi.c b/Tests/Module/WriteCompilerDetectionHeader/main_multi.c new file mode 100644 index 0000000..6f4573f --- /dev/null +++ b/Tests/Module/WriteCompilerDetectionHeader/main_multi.c @@ -0,0 +1,29 @@ + +#include "multi_file_compiler_detection.h" + +#if !defined(MULTI_COMPILER_C_FUNCTION_PROTOTYPES) || !MULTI_COMPILER_C_FUNCTION_PROTOTYPES +# error Expected MULTI_COMPILER_C_FUNCTION_PROTOTYPES +#endif + +#if !EXPECTED_COMPILER_C_FUNCTION_PROTOTYPES +# error Expected EXPECTED_COMPILER_C_FUNCTION_PROTOTYPES +#endif + +#if !defined(MULTI_COMPILER_C_RESTRICT) || !MULTI_COMPILER_C_RESTRICT +# if EXPECTED_COMPILER_C_RESTRICT +# error Expected MULTI_COMPILER_C_RESTRICT +# endif +#else +# if !EXPECTED_COMPILER_C_RESTRICT +# error Expect no MULTI_COMPILER_C_RESTRICT +# endif +#endif + +#ifdef MULTI_COMPILER_CXX_STATIC_ASSERT +#error Expect no CXX features defined +#endif + +int main() +{ + return 0; +} |