GrabBag/Test/GpioModuleTest/CMakeLists.txt
2026-08-04 14:23:07 +08:00

55 lines
1.1 KiB
CMake

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
)