1- # set OS preprocessor defines
2- if (CMAKE_SYSTEM_NAME MATCHES "Emscripten" )
3- set (OUP_PLATFORM_WASM TRUE )
4- set (OUP_COMPILER_EMSCRIPTEN TRUE )
5- elseif (APPLE )
6- set (OUP_PLATFORM_OSX TRUE )
7- elseif (UNIX )
8- set (OUP_PLATFORM_LINUX TRUE )
9- elseif (WIN32 )
10- set (OUP_PLATFORM_WINDOWS TRUE )
11- if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC" )
12- set (OUP_COMPILER_MSVC TRUE )
13- endif ()
14- endif ()
1+ function (add_platform_definitions TARGET )
2+ if (CMAKE_SYSTEM_NAME MATCHES "Emscripten" )
3+ target_compile_definitions (${TARGET} PRIVATE OUP_PLATFORM_WASM)
4+ target_compile_definitions (${TARGET} PRIVATE OUP_COMPILER_EMSCRIPTEN)
5+ elseif (APPLE )
6+ target_compile_definitions (${TARGET} PRIVATE OUP_PLATFORM_OSX)
7+ elseif (UNIX )
8+ target_compile_definitions (${TARGET} PRIVATE OUP_PLATFORM_LINUX)
9+ elseif (WIN32 )
10+ target_compile_definitions (${TARGET} PRIVATE OUP_PLATFORM_WINDOWS)
11+ if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC" )
12+ target_compile_definitions (${TARGET} PRIVATE OUP_COMPILER_MSVC)
13+ endif ()
14+ endif ()
15+ endfunction ()
1516
1617include (FetchContent)
1718
@@ -28,13 +29,7 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${Catch2_SOURCE_DIR}/extras")
2829add_executable (oup_tests ${PROJECT_SOURCE_DIR} /tests/runtime_tests.cpp)
2930target_link_libraries (oup_tests PRIVATE Catch2::Catch2WithMain)
3031target_link_libraries (oup_tests PRIVATE oup::oup)
31- target_compile_definitions (oup_tests PRIVATE
32- OUP_PLATFORM_OSX
33- OUP_PLATFORM_WASM
34- OUP_PLATFORM_LINUX
35- OUP_PLATFORM_WINDOWS
36- OUP_COMPILER_MSVC
37- OUP_COMPILER_EMSCRIPTEN)
32+ add_platform_definitions(oup_tests)
3833
3934include (CTest)
4035include (Catch)
@@ -79,9 +74,11 @@ message(STATUS "Running compile-time tests ended.")
7974
8075add_executable (oup_size_benchmark ${PROJECT_SOURCE_DIR} /tests/size_benchmark.cpp)
8176target_link_libraries (oup_size_benchmark PRIVATE oup::oup)
77+ add_platform_definitions(oup_tests)
8278
8379add_executable (oup_speed_benchmark
8480 ${PROJECT_SOURCE_DIR} /tests/speed_benchmark.cpp
8581 ${PROJECT_SOURCE_DIR} /tests/speed_benchmark_utility.cpp
8682 ${PROJECT_SOURCE_DIR} /tests/speed_benchmark_utility2.cpp)
8783target_link_libraries (oup_speed_benchmark PRIVATE oup::oup)
84+ add_platform_definitions(oup_tests)
0 commit comments