From dcac238fbd91927436c838517057913b4bdf2734 Mon Sep 17 00:00:00 2001 From: Jonas Zeunert Date: Tue, 4 Sep 2018 23:47:56 +0200 Subject: [PATCH] Cmaaaake --- FlippR-Driver/.idea/dictionaries/rhetenor.xml | 3 ++ FlippR-Driver/CMakeLists.txt | 39 ++++++++++++++++++- 2 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 FlippR-Driver/.idea/dictionaries/rhetenor.xml diff --git a/FlippR-Driver/.idea/dictionaries/rhetenor.xml b/FlippR-Driver/.idea/dictionaries/rhetenor.xml new file mode 100644 index 0000000..8a1b507 --- /dev/null +++ b/FlippR-Driver/.idea/dictionaries/rhetenor.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/FlippR-Driver/CMakeLists.txt b/FlippR-Driver/CMakeLists.txt index ede9d9d..395bcee 100644 --- a/FlippR-Driver/CMakeLists.txt +++ b/FlippR-Driver/CMakeLists.txt @@ -1,3 +1,8 @@ +####################### OPTIONS ######################### +option(BUILD_SHARED_LIB "Build a shared lib instead of a static." OFF) +option(ENABLE_TESTING "Enables testing." ON) +option(CROSS_COMPILE "Enables crosscompiling for raspberry pi" OFF) + #################### CONFIGURATION ###################### set(OUTPUT_PATH bin) set(LIB_DIR lib) @@ -8,6 +13,37 @@ set(CMAKE_CXX_STANDARD 17) # Boost configuration set(BOOST_COMPONENTS program_options thread timer chrono) + + +################### CROSS_COMPILING ###################### +IF(NOT RPI_ROOT) + set(RPI_ROOT $ENV{HOME}/FlippR/rpi) + set(RPI_TOOLCHAIN ${RPI_ROOT}/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin) +ENDIF() + +IF(CROSS_COMPILE) + #SET(CMAKE_TOOLCHAIN_FILE ${RPI_ROOT}/Toolchain-RaspberryPi.cmake) + SET(CMAKE_SYSTEM_NAME Linux) + SET(CMAKE_SYSTEM_VERSION 1) + + # Specify the cross compiler + SET(CMAKE_C_COMPILER arm-linux-gnueabihf-gcc-7) + SET(CMAKE_CXX_COMPILER arm-linux-gnueabihf-g++-7) + + # Where is the target environment + #SET(CMAKE_FIND_ROOT_PATH ${RPI_ROOT}/rootfs) + #SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --sysroot=${CMAKE_FIND_ROOT_PATH}") + #SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} --sysroot=${CMAKE_FIND_ROOT_PATH}") + #SET(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} --sysroot=${CMAKE_FIND_ROOT_PATH}") + + # Search for programs only in the build host directories + #SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) + + # Search for libraries and headers only in the target directories + #SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) + #SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) +ENDIF(CROSS_COMPILE) + ###################### START_CMAKE ####################### cmake_minimum_required(VERSION 3.9.1) project(FlippR-Driver VERSION 0.1.0 LANGUAGES CXX) @@ -24,8 +60,6 @@ if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE ${DEFAULT_BUILD_TYPE}) endif(NOT CMAKE_BUILD_TYPE) -option(BUILD_SHARED_LIB "Build a shared lib instead of a static." OFF) -option(ENABLE_TESTING "Enables testing." ON) #set code-coverage flags if Debug mode IF(CMAKE_BUILD_TYPE MATCHES DEBUG) @@ -87,6 +121,7 @@ target_include_directories(Catch INTERFACE ${CATCH_INCLUDE_DIR}) ## THREAD find_package(Threads REQUIRED) target_link_libraries(${PROJECT_NAME} PRIVATE ${Threads_LIBRARIES}) + if(ENABLE_TESTING) add_subdirectory(tests) endif(ENABLE_TESTING)