cmake_minimum_required(VERSION 3.16) project(GpioModuleTest LANGUAGES CXX) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) find_package(Threads REQUIRED) set(GPIO_MODULE_ROOT "${CMAKE_CURRENT_LIST_DIR}/../../Module/GpioModule") set(GPIO_MODULE_HEADER "${GPIO_MODULE_ROOT}/Inc/GpioInput.h") set(GPIO_MODULE_SOURCE "${GPIO_MODULE_ROOT}/Src/GpioInput.cpp") if(NOT EXISTS "${GPIO_MODULE_HEADER}" OR NOT EXISTS "${GPIO_MODULE_SOURCE}") message(FATAL_ERROR "Module/GpioModule sources were not found under ${GPIO_MODULE_ROOT}") endif() add_library(GpioModuleForTest STATIC "${GPIO_MODULE_HEADER}" "${GPIO_MODULE_SOURCE}" ) target_include_directories(GpioModuleForTest PUBLIC "${GPIO_MODULE_ROOT}/Inc" ) target_link_libraries(GpioModuleForTest PUBLIC Threads::Threads ) add_executable(GpioModuleTest main.cpp ) target_link_libraries(GpioModuleTest PRIVATE GpioModuleForTest ) set_target_properties(GpioModuleTest PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin" ) install(TARGETS GpioModuleTest RUNTIME DESTINATION bin )