Skip to content

Commit a853c73

Browse files
committed
external_project
1 parent 3e830e1 commit a853c73

2 files changed

Lines changed: 46 additions & 40 deletions

File tree

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
build*/
2+
MCCDaq-libusb/
3+
14
# Prerequisites
25
*.d
36

CMakeLists.txt

Lines changed: 43 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,49 @@
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.
2531
)
2632

27-
target_include_directories(${PROJECT_NAME} PRIVATE
28-
mccdaq
29-
${LSL_INCLUDE_DIRS}
33+
add_executable(${PROJECT_NAME} MACOSX_BUNDLE WIN32
34+
MCCOutlet.cpp
3035
)
31-
3236
target_link_libraries(${PROJECT_NAME}
33-
mccdaq
34-
${REQUIRED_LIBS}
37+
PRIVATE
38+
LSL::lsl
3539
)
40+
add_dependencies(${PROJECT_NAME} mccdaq)
3641

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

Comments
 (0)