File: CMakeLists.txt

package info (click to toggle)
tango 10.1.0%2Bdfsg1-1~exp1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 88,780 kB
  • sloc: cpp: 213,413; sh: 1,641; python: 1,264; javascript: 472; perl: 467; xml: 407; makefile: 294; java: 260; sql: 72
file content (51 lines) | stat: -rw-r--r-- 1,617 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
cmake_minimum_required(VERSION 3.18...3.26 FATAL_ERROR)

project(TangoTest LANGUAGES CXX
        VERSION 3.0)

list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/TangoCMakeModules)
find_package(Tango REQUIRED)

if(NOT DEFINED CMAKE_CXX_STANDARD)
    set(CMAKE_CXX_STANDARD 17)
endif()

set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_STANDARD_REQUIRED YES)

set(SOURCES
        ClassFactory.cpp
        TangoTest.cpp
        TangoTestClass.cpp
        TangoTestStateMachine.cpp
        main.cpp)

set(HEADERS
        TangoTest.h
        TangoTestClass.h)

set(CMAKE_POSITION_INDEPENDENT_CODE ON)

add_library(TangoTestObjects OBJECT ${SOURCES} ${HEADERS})
target_link_libraries(TangoTestObjects PRIVATE Tango::Tango)

add_executable(${PROJECT_NAME} $<TARGET_OBJECTS:TangoTestObjects>)
target_link_libraries(${PROJECT_NAME} PRIVATE Tango::Tango)

add_library("${PROJECT_NAME}Shared" SHARED $<TARGET_OBJECTS:TangoTestObjects>)
target_link_libraries("${PROJECT_NAME}Shared" PRIVATE Tango::Tango)
set_target_properties("${PROJECT_NAME}Shared" PROPERTIES OUTPUT_NAME ${PROJECT_NAME})

install(TARGETS ${PROJECT_NAME} "${PROJECT_NAME}Shared" RUNTIME DESTINATION bin)

if (WIN32 AND (Tango_IS_STATIC OR Tango_FORCE_STATIC))
    set_target_properties(${PROJECT_NAME} "${PROJECT_NAME}Shared" TangoTestObjects
      PROPERTIES MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>"
    )
endif()

option(TANGO_WARNINGS_AS_ERRORS "Treat compiler warnings as errors" OFF)

if(TANGO_WARNINGS_AS_ERRORS)
  target_compile_options(${PROJECT_NAME} PUBLIC -Werror -Wall -Wextra -Wformat -Werror=format-security -pedantic)
endif()