File: macros.cmake

package info (click to toggle)
robotraconteur 1.2.7-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 101,380 kB
  • sloc: cpp: 1,149,268; cs: 87,653; java: 58,127; python: 26,897; ansic: 356; sh: 152; makefile: 90; xml: 51
file content (49 lines) | stat: -rw-r--r-- 2,326 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
function(RR_SERVICE_TEST_ADD_TEST TARGET_NAME)

    cmake_parse_arguments(RR_ARG "" "" "SRC" ${ARGN})
    rr_test_add_executable(robotraconteur_test_${TARGET_NAME} SRC ${RR_ARG_SRC} DEPS robotraconteur_test_service_lib)
    target_include_directories(robotraconteur_test_${TARGET_NAME} PUBLIC ${CMAKE_CURRENT_BINARY_DIR})
    if(MSVC)
        target_compile_options(robotraconteur_test_${TARGET_NAME} PRIVATE "/bigobj")
    endif()
endfunction()

function(RR_SERVICE_TEST_ADD_EXE TARGET_NAME)
    cmake_parse_arguments(RR_ARG "" "" "SRC" ${ARGN})
    add_executable(robotraconteur_test_${TARGET_NAME} ${RR_ARG_SRC})
    target_link_libraries(robotraconteur_test_${TARGET_NAME} robotraconteur_test_service_lib)
    target_include_directories(robotraconteur_test_${TARGET_NAME} PUBLIC ${CMAKE_CURRENT_BINARY_DIR})
    if(MSVC)
        target_compile_options(robotraconteur_test_${TARGET_NAME} PRIVATE "/bigobj")
    endif()
    rr_set_test_target_dirs(robotraconteur_test_${TARGET_NAME} bin lib)
endfunction()

function(RR_SERVICE_TEST_ADD_LIB TARGET_NAME)
    cmake_parse_arguments(RR_ARG "SERVICELIB" "TYPE;DEFINE" "SRC" ${ARGN})
    if(NOT DEFINED RR_ARG_TYPE)
        set(RR_ARG_TYPE STATIC)
    endif()
    add_library(robotraconteur_test_${TARGET_NAME} ${RR_ARG_TYPE} ${RR_ARG_SRC})
    if(RR_ARG_SERVICELIB)
        set(RR_TEST_LIB robotraconteur_test_service_lib)
    endif()
    target_link_libraries(
        robotraconteur_test_${TARGET_NAME} PUBLIC ${RR_TEST_LIB} RobotRaconteurCore robotraconteur_test_cpp_common
                                                  robotraconteur_test_lfsr_static GTest::Main)
    target_include_directories(robotraconteur_test_${TARGET_NAME} PUBLIC ${CMAKE_CURRENT_BINARY_DIR})
    if(DEFINED RR_ARG_DEFINE)
        target_compile_definitions(robotraconteur_test_${TARGET_NAME} PRIVATE ${RR_ARG_DEFINE})
    endif()
    if(MSVC)
        target_compile_options(robotraconteur_test_${TARGET_NAME} PRIVATE "/bigobj")
    endif()
    if(CMAKE_COMPILER_IS_GNUCXX)
        target_compile_options(robotraconteur_test_${TARGET_NAME} PRIVATE "-fPIC")
    endif()

    if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
        target_compile_options(robotraconteur_test_${TARGET_NAME} PRIVATE "-fPIC")
    endif()
    rr_set_test_target_dirs(robotraconteur_test_${TARGET_NAME} bin lib)
endfunction()