214 lines
7.5 KiB
CMake
214 lines
7.5 KiB
CMake
#***********************************************************************
|
|
#* 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. <www.lp-research.com>")
|
|
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 <yap@lp-research.com>") #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()
|