#*********************************************************************** #* Copyright (C) 2019 LP-Research #* All rights reserved. #* Contact: LP-Research (info@lp-research.com) #* #* This file is part of the Open Motion Analysis Toolkit (OpenMAT). #* #* Redistribution and use in source and binary forms, with #* or without modification, are permitted provided that the #* following conditions are met: #* #* Redistributions of source code must retain the above copyright #* notice, this list of conditions and the following disclaimer. #* Redistributions in binary form must reproduce the above copyright #* notice, this list of conditions and the following disclaimer in #* the documentation and/or other materials provided with the #* distribution. #* #* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS #* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT #* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS #* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT #* HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, #* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT #* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, #* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY #* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT #* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE #* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #**********************************************************************/ cmake_minimum_required(VERSION 2.4.6) set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the type of build, options are: Debug Release" ) set(BUILD_ARCHITECTURE "32-bit" CACHE STRING "") #set(BUILD_ARCHITECTURE "64-bit" CACHE STRING "") set_property(CACHE BUILD_ARCHITECTURE PROPERTY STRINGS "32-bit" "64-bit") if(CMAKE_BUILD_TYPE STREQUAL "Release") project (LpmsIG1_OpenSourceLib) endif() if(CMAKE_BUILD_TYPE STREQUAL "Debug") project (LpmsIG1_OpenSourceLibD) endif() if(COMMAND cmake_policy) cmake_policy(SET CMP0003 NEW) cmake_policy(SET CMP0015 NEW) cmake_policy(SET CMP0040 NEW) endif(COMMAND cmake_policy) if (${CMAKE_SYSTEM_NAME} MATCHES "Windows") # Windows SDK set(WINDOWS_SDK_PATH "C:/Program Files (x86)/Microsoft SDKs/Windows/v7.1A" CACHE STRING "") # LpmsIG1 include_directories("./") ADD_DEFINITIONS(-DUSE_EIGEN) ADD_DEFINITIONS(-DNOMINMAX) ADD_DEFINITIONS(-DEIGEN_DONT_ALIGN_STATICALLY) ADD_DEFINITIONS(-D_WIN32_WINNT=0x05010200) ADD_DEFINITIONS(-DWIN32_LEAN_AND_MEAN) ADD_DEFINITIONS(-DPLATFORM_X86) ADD_DEFINITIONS(-D_CRT_SECURE_NO_DEPRECATE) ADD_DEFINITIONS(-DDLL_EXPORT) if(CMAKE_BUILD_TYPE STREQUAL "Release") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /fp:fast /O2") endif() #link_directories("${WINDOWS_SDK_PATH}/Lib") endif() if (${CMAKE_SYSTEM_NAME} MATCHES "Windows") set(sources MicroMeasureWindows.cpp SerialPort.cpp LpmsIG1.cpp LpMatrix.c LpUtil.cpp version.rc ) elseif(${CMAKE_SYSTEM_NAME} MATCHES "Linux") set(sources MicroMeasure.cpp SerialPortLinux.cpp LpmsIG1.cpp LpMatrix.c LpUtil.cpp version.rc ) set(headers_linux_install LpMatrix.h LpmsIG1Registers.h SensorDataI.h LpmsIG1I.h LpLog.h ) endif() set(headers MicroMeasure.h SerialPort.h SensorData.h SensorDataI.h LpUtil.h LpmsIG1.h LpmsIG1I.h LpmsIG1Registers.h LpMatrix.h LpLog.h ) # Silicon labs set(WINDOWS_SL_PATH "E:/openSourceLibSiliconLabs/MCU/USBXpress_SDK/Library/Host/Windows" CACHE STRING "") include_directories("${WINDOWS_SL_PATH}") link_directories("${WINDOWS_SL_PATH}/x86") find_library(SILABS_LIB SiUSBXp.lib PATHS "${WINDOWS_SL_PATH}/x86") if (BUILD_ARCHITECTURE STREQUAL "32-bit") set(LIBRARY_OUTPUT_PATH ./ CACHE STRING "") set(EXECUTABLE_OUTPUT_PATH ./ CACHE STRING "") endif() if (BUILD_ARCHITECTURE STREQUAL "64-bit") set(LIBRARY_OUTPUT_PATH ./ CACHE STRING "") set(EXECUTABLE_OUTPUT_PATH ./ CACHE STRING "") endif() if(${CMAKE_SYSTEM_NAME} MATCHES "Linux") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -std=gnu++11") #SET ( CMAKE_CXX_FLAGS "-D_GLIBCXX_USE_CXX11_ABI=1" ) endif() if (${CMAKE_SYSTEM_NAME} MATCHES "Windows") if (BUILD_ARCHITECTURE STREQUAL "32-bit") if(CMAKE_BUILD_TYPE STREQUAL "Release") add_library(${CMAKE_PROJECT_NAME} SHARED ${sources} ${headers}) target_link_libraries(${CMAKE_PROJECT_NAME} Ws2_32.lib) target_link_libraries(${CMAKE_PROJECT_NAME} SiUSBXp.lib) endif() if(CMAKE_BUILD_TYPE STREQUAL "Debug") add_library(${CMAKE_PROJECT_NAME} SHARED ${sources} ${headers}) target_link_libraries(${CMAKE_PROJECT_NAME} Ws2_32.lib) target_link_libraries(${CMAKE_PROJECT_NAME} SiUSBXp.lib) endif() endif() if (BUILD_ARCHITECTURE STREQUAL "64-bit") if(CMAKE_BUILD_TYPE STREQUAL "Release") add_library(${CMAKE_PROJECT_NAME} SHARED ${sources} ${headers}) target_link_libraries(${CMAKE_PROJECT_NAME} Ws2_32.lib) target_link_libraries(${CMAKE_PROJECT_NAME} SiUSBXp.lib) endif() if(CMAKE_BUILD_TYPE STREQUAL "Debug") add_library(${CMAKE_PROJECT_NAME} SHARED ${sources} ${headers}) target_link_libraries(${CMAKE_PROJECT_NAME} Ws2_32.lib) target_link_libraries(${CMAKE_PROJECT_NAME} SiUSBXp.lib) endif() endif() endif() if(${CMAKE_SYSTEM_NAME} MATCHES "Linux") include(InstallRequiredSystemLibraries) set(MAJOR_VERSION "0") set(MINOR_VERSION "3") set(PATCH_VERSION "0") SET(CPACK_GENERATOR "DEB") SET(CPACK_PACKAGE_NAME "libLpmsIG1_OpenSource") set(CPACK_PACKAGE_VENDOR "LP-Research Inc. ") set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Library for communicating and interfacing with LP-Research sensors.") set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/SUMMARY.txt") set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.txt") set(CPACK_PACKAGE_VERSION_MAJOR "${MAJOR_VERSION}") set(CPACK_PACKAGE_VERSION_MINOR "${MINOR_VERSION}") set(CPACK_PACKAGE_VERSION_PATCH "${PATCH_VERSION}") SET(CPACK_DEBIAN_PACKAGE_MAINTAINER "H.E. YAP ") #required include(CPack) if(CMAKE_BUILD_TYPE STREQUAL "Release") add_library(${CMAKE_PROJECT_NAME} SHARED ${sources} ${headers}) target_link_libraries(${CMAKE_PROJECT_NAME} pthread) target_link_libraries(${CMAKE_PROJECT_NAME} rt) target_link_libraries(${CMAKE_PROJECT_NAME} udev) endif() if(CMAKE_BUILD_TYPE STREQUAL "Debug") add_library(${CMAKE_PROJECT_NAME} SHARED ${sources} ${headers}) target_link_libraries(${CMAKE_PROJECT_NAME} pthread) target_link_libraries(${CMAKE_PROJECT_NAME} rt) target_link_libraries(${CMAKE_PROJECT_NAME} udev) endif() install(FILES ${headers_linux_install} DESTINATION include/lpsensor) install(TARGETS ${CMAKE_PROJECT_NAME} RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) endif()