LSFramework/Software/Framework.UnitTest/CMakeLists.txt
Luis Stanglmeier 03338fa8a6 changed class names
generall reorganization
2022-06-23 17:09:20 +02:00

79 lines
2.4 KiB
CMake

###########################################################################################
#
# (c) Luis Stanglmeier
#
# CMAKE project file / @Add your project name@
#
#-----------------------------------------------------------------------------------------
# Define project specific requirements
#
# Project name, output file name, project description
#
set(PROJECT_NAME Framework.Unittest)
set(PROJECT_OUTPUT_NAME Framework.Unittest)
set(UNITTEST_PROJECT Framework)
set(PROJECT_DESCRIPTION "Unit tests for project Framework")
#
#-----------------------------------------------------------------------------------------
# Define group file names
#
# NOTE: When using GLOB or GLOB_RECURSE for gathering files, CMake will not notice when the amount of files has changed (a file has been added/removed).
# The CMakeList has to be compiled manually after adding/removing a source/header file.
#
# SOURCE FILES
#
FILE(GLOB_RECURSE SOURCE_FILES ${CMAKE_CURRENT_LIST_DIR}/*/*.cpp)
#
# HEADER FILES
#
FILE(GLOB_RECURSE HEADER_FILES ${CMAKE_CURRENT_LIST_DIR}/*/*.h)
#
#-----------------------------------------------------------------------------------------
# Define solution folders for group files
#
source_group("Source Files" FILES ${SOURCE_FILES} main.cpp)
source_group("Header Files" FILES ${HEADER_FILES})
#
#-----------------------------------------------------------------------------------------
# Console application definitions
#
# Setup application version
#
TSEP_SETUP_APP_VERSION(${PROJECT_DESCRIPTION})
#
# Create console application
#
add_executable(${PROJECT_NAME} ${SOURCE_FILES} ${HEADER_FILES} ${TSEP_APP_VERSION_RC} main.cpp)
#
# Setup output
#
set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME ${PROJECT_OUTPUT_NAME})
set_target_properties(${PROJECT_NAME} PROPERTIES FOLDER "UnitTest")
#
# Add used libs
#
target_link_libraries(${PROJECT_NAME}
PUBLIC
${UNITTEST_PROJECT}
GTest::GTest
)
#
#-----------------------------------------------------------------------------------------
# Include files, add your own includes
TSEP_GET_HEADER_DIRECTORIES(SOURCE_INCLUDE_LIST ${TSEP_SOURCE_DIR}/${UNITTEST_PROJECT})
TSEP_GET_HEADER_DIRECTORIES(UNIT_TEST_INCLUDE_LIST ${CMAKE_CURRENT_LIST_DIR})
#
target_include_directories(${PROJECT_NAME}
PUBLIC
${UNIT_TEST_INCLUDE_LIST}
${SOURCE_INCLUDE_LIST}
#PRIVATE
# include paths, which will not be exported
)
#
# Create links to necessary dependency libraries
#
TSEP_GENERATE_DEPENDENCY_LINKS()
#