mirror of
https://github.com/wjwwood/serial.git
synced 2026-01-22 19:54:57 +08:00
cmake: Move options to start, comments, cleanup.
This commit is contained in:
parent
9662bf6b11
commit
13ac389cbe
@ -1,5 +1,9 @@
|
|||||||
cmake_minimum_required(VERSION 3.5.0)
|
cmake_minimum_required(VERSION 3.5.0)
|
||||||
|
|
||||||
|
# Public options and command line configuration
|
||||||
|
option(ENABLE_TEST_PROGRAM "Build test program" OFF)
|
||||||
|
option(CATKIN_ENABLE_TESTING "Enable catkin unit tests" ON)
|
||||||
|
|
||||||
|
|
||||||
option(USE_CXX_SERIAL "build package name cxx-serial" OFF)
|
option(USE_CXX_SERIAL "build package name cxx-serial" OFF)
|
||||||
if (USE_CXX_SERIAL)
|
if (USE_CXX_SERIAL)
|
||||||
@ -9,6 +13,9 @@ else ()
|
|||||||
endif ()
|
endif ()
|
||||||
message(STATUS "Building package ${PKG_NAME}")
|
message(STATUS "Building package ${PKG_NAME}")
|
||||||
|
|
||||||
|
set(SERIAL_DOCDIR ${CMAKE_INSTALL_PREFIX}/share/doc/${PKG_NAME}
|
||||||
|
CACHE STRING "Installation root for doxygen docs."
|
||||||
|
)
|
||||||
option(DISABLE_CATKIN "Disable build of catkin package and tests" OFF)
|
option(DISABLE_CATKIN "Disable build of catkin package and tests" OFF)
|
||||||
if (DISABLE_CATKIN AND "${CATKIN_ENABLE_TESTING}" STREQUAL "" )
|
if (DISABLE_CATKIN AND "${CATKIN_ENABLE_TESTING}" STREQUAL "" )
|
||||||
set(CATKIN_ENABLE_TESTING OFF)
|
set(CATKIN_ENABLE_TESTING OFF)
|
||||||
@ -21,24 +28,17 @@ project(${PKG_NAME}
|
|||||||
HOMEPAGE_URL "http://wjwwood.io/serial/"
|
HOMEPAGE_URL "http://wjwwood.io/serial/"
|
||||||
)
|
)
|
||||||
include(GNUInstallDirs)
|
include(GNUInstallDirs)
|
||||||
|
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
|
|
||||||
|
# Locate packages, headers and libraries
|
||||||
if (NOT DISABLE_CATKIN)
|
if (NOT DISABLE_CATKIN)
|
||||||
find_package(catkin REQUIRED)
|
find_package(catkin REQUIRED)
|
||||||
endif ()
|
endif ()
|
||||||
configure_file(package.xml.in ${PROJECT_SOURCE_DIR}/package.xml @ONLY)
|
|
||||||
|
|
||||||
|
|
||||||
# Public options and command line configuration
|
|
||||||
option(ENABLE_TEST_PROGRAM "Build test program" OFF)
|
|
||||||
option(CATKIN_ENABLE_TESTING "Enable catkin unit tests" ON)
|
|
||||||
|
|
||||||
set(SERIAL_DOCDIR ${CMAKE_INSTALL_PREFIX}/share/doc/${PROJECT_NAME}
|
|
||||||
CACHE STRING "Installation root for doxygen docs."
|
|
||||||
)
|
|
||||||
|
|
||||||
find_path(HAVE_STDINT_H NAMES stdint.h)
|
find_path(HAVE_STDINT_H NAMES stdint.h)
|
||||||
|
|
||||||
if (NOT DISABLE_CATKIN)
|
if (NOT DISABLE_CATKIN)
|
||||||
|
# Build the catkin library
|
||||||
find_library(PTHREAD_LIB NAMES pthread REQUIRED)
|
find_library(PTHREAD_LIB NAMES pthread REQUIRED)
|
||||||
if (PTHREAD_LIB)
|
if (PTHREAD_LIB)
|
||||||
set(PTHREAD_LIBRARIES ${PTHREAD_LIB})
|
set(PTHREAD_LIBRARIES ${PTHREAD_LIB})
|
||||||
@ -65,26 +65,24 @@ if (NOT HAVE_STDINT_H)
|
|||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
# If OSX
|
|
||||||
list(APPEND serial_SRCS src/impl/unix.cc)
|
list(APPEND serial_SRCS src/impl/unix.cc)
|
||||||
list(APPEND serial_SRCS src/impl/list_ports/list_ports_osx.cc)
|
list(APPEND serial_SRCS src/impl/list_ports/list_ports_osx.cc)
|
||||||
elseif(UNIX)
|
elseif(UNIX)
|
||||||
# If unix
|
# linux
|
||||||
list(APPEND serial_SRCS src/impl/unix.cc)
|
list(APPEND serial_SRCS src/impl/unix.cc)
|
||||||
list(APPEND serial_SRCS src/impl/list_ports/list_ports_linux.cc)
|
list(APPEND serial_SRCS src/impl/list_ports/list_ports_linux.cc)
|
||||||
else()
|
else()
|
||||||
# If windows
|
# win32
|
||||||
list(APPEND serial_SRCS src/impl/win.cc)
|
list(APPEND serial_SRCS src/impl/win.cc)
|
||||||
list(APPEND serial_SRCS src/impl/list_ports/list_ports_win.cc)
|
list(APPEND serial_SRCS src/impl/list_ports/list_ports_win.cc)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
## Add serial library
|
|
||||||
set(serial_HEADERS include/serial/serial.h)
|
set(serial_HEADERS include/serial/serial.h)
|
||||||
if (NOT HAVE_STDINT_H)
|
if (NOT HAVE_STDINT_H)
|
||||||
list(APPEND serial_HEADERS include/serial/v8stdint.h)
|
list(APPEND serial_HEADERS include/serial/v8stdint.h)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
# Build, link and install main library
|
# Build and link main library
|
||||||
add_library(${PROJECT_NAME} ${serial_SRCS})
|
add_library(${PROJECT_NAME} ${serial_SRCS})
|
||||||
set_target_properties(${PROJECT_NAME} PROPERTIES
|
set_target_properties(${PROJECT_NAME} PROPERTIES
|
||||||
VERSION ${PROJECT_VERSION}
|
VERSION ${PROJECT_VERSION}
|
||||||
@ -107,10 +105,7 @@ else ()
|
|||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
|
||||||
## Include headers
|
## Install main library, possibly the catkin one.
|
||||||
include_directories(include)
|
|
||||||
|
|
||||||
## Install executable
|
|
||||||
install(TARGETS ${PROJECT_NAME}
|
install(TARGETS ${PROJECT_NAME}
|
||||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||||
@ -118,7 +113,6 @@ install(TARGETS ${PROJECT_NAME}
|
|||||||
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}
|
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
# Other targets: test program, pkg-config and tests.
|
# Other targets: test program, pkg-config and tests.
|
||||||
if (CATKIN_ENABLE_TESTING)
|
if (CATKIN_ENABLE_TESTING)
|
||||||
include(CTest)
|
include(CTest)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user