From d0728fa0ca704eb4145b0bb4789242170ea6c49f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mika=C3=ABl=20Capelle?= Date: Wed, 6 May 2020 13:26:03 +0200 Subject: [PATCH] Add 'tests' project type. --- cpp.cmake | 6 ++++++ project.cmake | 2 ++ tests.cmake | 26 ++++++++++++++++++++++++++ 3 files changed, 34 insertions(+) create mode 100644 tests.cmake diff --git a/cpp.cmake b/cpp.cmake index 2779299..86160a2 100644 --- a/cpp.cmake +++ b/cpp.cmake @@ -80,6 +80,7 @@ macro(cpp_pre_target) ${ZLIB_ROOT}/lib ${LOOT_PATH} ${LIBBSARCH_ROOT} + ${modorganizer_build_path}/googletest/build/lib ) endmacro() @@ -231,6 +232,11 @@ function(requires_library) "${SOURCE_DIR}/include") add_dependencies(${PROJECT_NAME} cpptoml) + elseif(${name} STREQUAL "gtest") + target_include_directories(${PROJECT_NAME} PRIVATE + ${modorganizer_build_path}/googletest/googletest/include) + target_link_libraries(${PROJECT_NAME} gtest) + target_link_libraries(${PROJECT_NAME} gtest_main) elseif(${name} STREQUAL "python") target_include_directories(${PROJECT_NAME} PRIVATE ${PYTHON_ROOT}/Include) diff --git a/project.cmake b/project.cmake index 35688d4..07430af 100644 --- a/project.cmake +++ b/project.cmake @@ -83,6 +83,8 @@ elseif(${project_type} STREQUAL "lib") include(${CMAKE_CURRENT_LIST_DIR}/lib.cmake) elseif(${project_type} STREQUAL "exe") include(${CMAKE_CURRENT_LIST_DIR}/exe.cmake) +elseif(${project_type} STREQUAL "tests") + include(${CMAKE_CURRENT_LIST_DIR}/tests.cmake) elseif(${project_type} STREQUAL "python_plugin") include(${CMAKE_CURRENT_LIST_DIR}/python_plugin.cmake) else() diff --git a/tests.cmake b/tests.cmake new file mode 100644 index 0000000..aadc4eb --- /dev/null +++ b/tests.cmake @@ -0,0 +1,26 @@ +cmake_minimum_required(VERSION 3.16) +include(${CMAKE_CURRENT_LIST_DIR}/cpp.cmake) + + +macro(do_project) + do_cpp_project() +endmacro() + + +macro(do_src) + cpp_pre_target() + + add_executable(${PROJECT_NAME} ${input_files}) + + set_property(TARGET ${PROJECT_NAME} PROPERTY + MSVC_RUNTIME_LIBRARY "MultiThreaded") + + if(DEFINED executable_name) + set_target_properties(${PROJECT_NAME} PROPERTIES + OUTPUT_NAME ${executable_name}) + endif() + + requires_library(gtest) + cpp_post_target() + +endmacro()