|
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 | | - |
13 | | -add_subdirectory(MCCDaq-libusb-driver) |
14 | | - |
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 | | -# Target executable |
23 | | -add_executable(${PROJECT_NAME} |
24 | | - ${CMAKE_CURRENT_SOURCE_DIR}/MCCOutlet.cpp |
| 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 | +# MCC Driver |
| 23 | +include(ExternalProject) |
| 24 | +ExternalProject_Add(mccdaq |
| 25 | + PREFIX ${CMAKE_CURRENT_LIST_DIR}/MCCDaq-libusb |
| 26 | + DOWNLOAD_NO_PROGRESS 0 # Do not disable download progress. |
| 27 | + GIT_REPOSITORY https://github.com/SachsLab/MCCDaq-libusb-driver.git |
| 28 | + GIT_SHALLOW 1 |
| 29 | + BUILD_COMMAND "" # Disable build step. |
| 30 | + INSTALL_COMMAND "" # Disable install step. |
25 | 31 | ) |
26 | 32 |
|
27 | | -target_include_directories(${PROJECT_NAME} PRIVATE |
28 | | - mccdaq |
29 | | - ${LSL_INCLUDE_DIRS} |
| 33 | +add_executable(${PROJECT_NAME} MACOSX_BUNDLE WIN32 |
| 34 | + MCCOutlet.cpp |
30 | 35 | ) |
31 | | - |
32 | 36 | target_link_libraries(${PROJECT_NAME} |
33 | | - mccdaq |
34 | | - ${REQUIRED_LIBS} |
| 37 | + PRIVATE |
| 38 | + LSL::lsl |
35 | 39 | ) |
| 40 | +add_dependencies(${PROJECT_NAME} mccdaq) |
36 | 41 |
|
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() |
| 42 | +set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 14) |
| 43 | +# target_compile_features(${PROJECT_NAME} PRIVATE cxx_auto_type cxx_lambda_init_captures) |
| 44 | + |
| 45 | +installLSLApp(${PROJECT_NAME}) |
| 46 | +installLSLAuxFiles(${PROJECT_NAME} |
| 47 | + ${PROJECT_NAME}.cfg |
| 48 | +) |
| 49 | +LSLGenerateCPackConfig() |
0 commit comments