File: CMakeLists.txt

package info (click to toggle)
tango 10.0.2%2Bdfsg1-1~bpo12%2B1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm-backports
  • size: 89,480 kB
  • sloc: cpp: 201,245; sh: 1,645; python: 953; java: 800; perl: 467; javascript: 447; xml: 325; makefile: 269; sql: 72; ruby: 24
file content (58 lines) | stat: -rw-r--r-- 2,159 bytes parent folder | download | duplicates (2)
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
52
53
54
55
56
57
58
cmake_minimum_required(VERSION 3.18...3.26 FATAL_ERROR)
project(TangoAccessControl VERSION 2.19 LANGUAGES CXX)

get_property(IS_MULTI_CONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)

if(NOT CMAKE_BUILD_TYPE AND NOT IS_MULTI_CONFIG)
    message(STATUS "No build type specified - default is DEBUG")
    set(CMAKE_BUILD_TYPE DEBUG)
endif()

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

set(SOURCES ClassFactory.cpp
            DbUtils.cpp
            TangoAccessControlStateMachine.cpp
            TangoAccessControl.cpp
            TangoAccessControlClass.cpp
            main.cpp)

set(ADDITIONAL_SOURCES ../AbstractClasses/AccessControl.cpp
                       ../AbstractClasses/AccessControlClass.cpp
                       ../AbstractClasses/AccessControlStateMachine.cpp)

set(HEADERS Logging.h
            TangoAccessControl.h
            TangoAccessControlClass.h)

set(ADDITIONAL_HEADERS ../AbstractClasses/AccessControl.h
                       ../AbstractClasses/AccessControlClass.h)

add_executable(TangoAccessControl ${SOURCES} ${ADDITIONAL_SOURCES} ${HEADERS} ${ADDITIONAL_HEADERS})
target_link_libraries(TangoAccessControl PUBLIC Tango::Tango MySQL::MySQL)
target_include_directories(TangoAccessControl PUBLIC ../AbstractClasses)

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


if (MSVC)
    target_compile_options(TangoAccessControl PUBLIC /W3)
else()
    target_compile_options(TangoAccessControl PUBLIC -Wall -Wextra -D_FORTIFY_SOURCE=2 -O1)

    if(NOT (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang" OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang"))
        target_compile_options(TangoAccessControl PUBLIC -fpie)
        set_target_properties(TangoAccessControl PROPERTIES LINK_FLAGS "-Wl,-z,now -pie")
    else()
        set_target_properties(TangoAccessControl PROPERTIES LINK_FLAGS "-bind_at_load")
    endif()
endif()

install(TARGETS TangoAccessControl
        RUNTIME DESTINATION "${CMAKE_INSTALL_FULL_BINDIR}")