|
1 | | -cmake_minimum_required(VERSION 2.8) |
2 | | - |
3 | | -PROJECT(MCCOutlet) |
4 | | - |
5 | | -# General settings |
6 | | -LIST(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake") |
7 | | -cmake_policy(SET CMP0042 NEW) # ENABLE CMP0042: MACOSX_RPATH is enabled by default. |
8 | | -IF(UNIX) |
9 | | - # c++11 for nullptr and others |
10 | | - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") |
11 | | -ENDIF() |
12 | | - |
| 1 | +cmake_minimum_required(VERSION 3.5) |
| 2 | + |
| 3 | +project(MCCOutlet |
| 4 | + LANGUAGES CXX |
| 5 | + VERSION 0.1) |
| 6 | + |
| 7 | +# set up LSL if not done already |
| 8 | +if(NOT TARGET LSL::lsl) |
| 9 | + # when building out of tree LSL_ROOT needs to be specified on the cmd line |
| 10 | + file(TO_CMAKE_PATH "${LSL_INSTALL_ROOT}" LSL_INSTALL_ROOT) |
| 11 | + list(APPEND LSL_INSTALL_ROOT "${CMAKE_CURRENT_LIST_DIR}/../../LSL/liblsl/build/install") |
| 12 | + list(APPEND LSL_INSTALL_ROOT "${CMAKE_CURRENT_LIST_DIR}/../../build/install") |
| 13 | + find_package(LSL HINTS ${LSL_INSTALL_ROOT}/share/LSL/ ${LSL_INSTALL_ROOT}/LSL/share/LSL QUIET) |
| 14 | + if(NOT LSL_FOUND) |
| 15 | + message(FATAL_ERROR "Precompiled LSL was not found. See https://github.com/labstreaminglayer/labstreaminglayer/blob/master/doc/BUILD.md#lsl_install_root for more information.") |
| 16 | + endif() |
| 17 | + list(APPEND CMAKE_MODULE_PATH ${LSL_DIR}) |
| 18 | + message(STATUS "Looking for LSLCMake in ${LSL_DIR}") |
| 19 | + include(LSLCMake) |
| 20 | +endif() |
| 21 | + |
| 22 | +# mccdaq |
13 | 23 | add_subdirectory(MCCDaq-libusb-driver) |
14 | 24 |
|
15 | | -# Third party packages |
16 | | -SET(REQUIRED_LIBS) |
17 | | -# LSL |
18 | | -set(LSL_ROOT_DIR ${CMAKE_CURRENT_LIST_DIR}/../../../labstreaminglayer/LSL/liblsl) |
19 | | -find_package(LSL REQUIRED) |
20 | | -LIST(APPEND REQUIRED_LIBS ${LSL_LIBRARIES}) |
21 | | - |
22 | 25 | # Target executable |
23 | | -add_executable(${PROJECT_NAME} |
24 | | - ${CMAKE_CURRENT_SOURCE_DIR}/MCCOutlet.cpp |
| 26 | +add_executable(${PROJECT_NAME} MACOSX_BUNDLE WIN32 |
| 27 | + MCCOutlet.cpp |
25 | 28 | ) |
26 | 29 |
|
27 | 30 | target_include_directories(${PROJECT_NAME} PRIVATE |
28 | 31 | mccdaq |
29 | | - ${LSL_INCLUDE_DIRS} |
30 | 32 | ) |
31 | 33 |
|
32 | 34 | target_link_libraries(${PROJECT_NAME} |
33 | 35 | mccdaq |
34 | | - ${REQUIRED_LIBS} |
| 36 | + LSL::lsl |
35 | 37 | ) |
36 | 38 |
|
37 | | -IF(WIN32) |
38 | | - add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD |
39 | | - COMMAND ${CMAKE_COMMAND} -E copy_if_different |
40 | | - ${LSL_BINARY_RELEASE} |
41 | | - $<TARGET_FILE_DIR:${PROJECT_NAME}>) |
42 | | - add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD |
43 | | - COMMAND ${CMAKE_COMMAND} -E copy_if_different |
44 | | - ${LSL_BINARY_DEBUG} |
45 | | - $<TARGET_FILE_DIR:${PROJECT_NAME}>) |
46 | | -ENDIF() |
| 39 | +set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 14) |
| 40 | +# target_compile_features(${PROJECT_NAME} PRIVATE cxx_auto_type cxx_lambda_init_captures) |
| 41 | + |
| 42 | +installLSLApp(${PROJECT_NAME}) |
| 43 | +installLSLAuxFiles(${PROJECT_NAME} |
| 44 | + ${PROJECT_NAME}.cfg |
| 45 | +) |
| 46 | +LSLGenerateCPackConfig() |
0 commit comments