48 lines
1.4 KiB
CMake
48 lines
1.4 KiB
CMake
cmake_minimum_required(VERSION 3.10)
|
|
|
|
project(PipelineRunner)
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
|
|
|
# PIP
|
|
find_package(PIP REQUIRED)
|
|
|
|
# Google Test
|
|
include(FetchContent)
|
|
FetchContent_Declare(
|
|
googletest
|
|
GIT_REPOSITORY https://git.shstk.ru/mirrors/googletest.git
|
|
GIT_TAG v1.14.0
|
|
)
|
|
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
|
|
FetchContent_MakeAvailable(googletest)
|
|
|
|
# Source files
|
|
file(GLOB ALL_SRCS "src/*.cpp")
|
|
file(GLOB HDRS "src/*.h")
|
|
list(FILTER ALL_SRCS EXCLUDE REGEX ".*main\\.cpp$")
|
|
set(SRCS ${ALL_SRCS})
|
|
|
|
# Main executable
|
|
add_executable(pipeline-runner src/main.cpp ${SRCS} ${HDRS})
|
|
target_include_directories(pipeline-runner PRIVATE src)
|
|
target_link_libraries(pipeline-runner PIP PIP::HTTPServer PIP::Crypt PIP::Console)
|
|
|
|
set_target_properties(pipeline-runner PROPERTIES
|
|
INSTALL_RPATH "\$ORIGIN;\$ORIGIN/lib"
|
|
BUILD_RPATH "\$ORIGIN;\$ORIGIN/lib"
|
|
)
|
|
|
|
# Tests
|
|
add_executable(test-pipeline-runner tests/test_pipeline.cpp tests/test_runner.cpp ${SRCS})
|
|
target_include_directories(test-pipeline-runner PRIVATE src tests)
|
|
target_link_libraries(test-pipeline-runner PIP PIP::HTTPServer PIP::Crypt PIP::Console GTest::gtest_main)
|
|
|
|
include(GoogleTest)
|
|
gtest_discover_tests(test-pipeline-runner)
|
|
|
|
# Install
|
|
install(TARGETS pipeline-runner DESTINATION bin)
|
|
install(FILES pipeline-runner.conf DESTINATION bin)
|