55cmake_minimum_required (VERSION 2.8.11)
66project (mFAST CXX)
77
8+ # options to build tests, examples and packages
9+ option (BUILD_TESTS "Build tests" ON )
10+ option (BUILD_EXAMPLES "Build examples" ON )
11+ option (BUILD_PACKAGES "Build packages" ON )
12+
13+ # debug build by default
14+ if (NOT CMAKE_BUILD_TYPE )
15+ set (CMAKE_BUILD_TYPE "Debug" CACHE STRING "Choose the type of build" FORCE)
16+ endif (NOT CMAKE_BUILD_TYPE )
17+
818if (POLICY CMP0054)
919 cmake_policy (SET CMP0054 OLD)
1020endif ()
1121
12- list (APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR } /cmake" )
22+ list (APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR } /cmake" )
1323
1424set (MFAST_MAJOR_VERSION 1)
1525set (MFAST_MINOR_VERSION 3)
1626set (MFAST_PATCH_VERSION 0)
1727set (MFAST_VERSION ${MFAST_MAJOR_VERSION} .${MFAST_MINOR_VERSION} .${MFAST_PATCH_VERSION} )
1828set (MFAST_SOVERSION ${MFAST_MAJOR_VERSION} .${MFAST_MINOR_VERSION} )
1929
20- set (CPACK_PACKAGE_VERSION ${MFAST_VERSION} )
21- set (CPACK_PACKAGE_NAME "mfast" )
22-
23- include (CPack)
2430include (SetInstallPaths)
2531include (Emscripten)
2632include (SetCXXStandard)
@@ -30,6 +36,30 @@ include(SetupCoverage)
3036# flag to enable building shared/dynamic library
3137set (BUILD_SHARED_LIBS OFF CACHE BOOL "build shared/dynamic library" )
3238
39+ if (BUILD_PACKAGES)
40+ # Build deb package by default
41+ if (NOT CPACK_GENERATOR)
42+ set (CPACK_GENERATOR "DEB" CACHE STRING "List of generators." )
43+ endif (NOT CPACK_GENERATOR)
44+
45+ if (CUSTOM_INSTALL_PREFIX)
46+ set (CMAKE_INSTALL_PREFIX ${CUSTOM_INSTALL_PREFIX} CACHE STRING "Custom installation prefix." )
47+ set (CPACK_SET_DESTDIR true )
48+ set (CPACK_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX} )
49+ endif (CUSTOM_INSTALL_PREFIX)
50+
51+ set (CPACK_PACKAGE_DESCRIPTION_SUMMARY "A FAST (FIX Adapted for STreaming) encoder/decoder" )
52+ set (CPACK_PACKAGE_NAME "mfast" )
53+ set (CPACK_PACKAGE_VERSION ${MFAST_VERSION} )
54+ set (CPACK_PACKAGE_VENDOR "Object Computing, Inc." )
55+ set (CPACK_PACKAGE_CONTACT "info@ociweb.com" )
56+ set (CPACK_DEBIAN_PACKAGE_MAINTAINER "Huang-Ming Huang" )
57+ set (CPACK_DEBIAN_PACKAGE_SECTION "devel" )
58+
59+ include (CPack)
60+
61+ endif (BUILD_PACKAGES)
62+
3363find_package (Boost 1.56.0 REQUIRED)
3464include_directories (${Boost_INCLUDE_DIR} )
3565include_directories (${CMAKE_CURRENT_SOURCE_DIR} /tinyxml2)
@@ -48,27 +78,27 @@ set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
4878add_subdirectory (src)
4979include (FastTypeGenTarget)
5080
51- enable_testing ()
52- add_subdirectory (tests)
81+ if (BUILD_TESTS)
82+ enable_testing ()
83+ add_subdirectory (tests)
84+ endif (BUILD_TESTS)
5385
5486if (BUILD_SHARED_LIBS )
5587 set (MFAST_LIBRARIES "${MFAST_SHARED_LIBRARIES} " )
5688else (BUILD_SHARED_LIBS )
5789 set (MFAST_LIBRARIES "${MFAST_STATIC_LIBRARIES} " )
5890endif (BUILD_SHARED_LIBS )
5991
60- add_subdirectory (examples)
61-
92+ if (BUILD_EXAMPLES)
93+ add_subdirectory (examples)
94+ endif (BUILD_EXAMPLES)
6295
6396# Setting up dist target
64- # ===============================
65-
6697set (ARCHIVE_NAME ${CMAKE_PROJECT_NAME} -${MFAST_VERSION} )
6798add_custom_target (dist
6899 COMMAND git archive --prefix =${ARCHIVE_NAME} / HEAD
69100 | bzip2 > ${CMAKE_BINARY_DIR} /${ARCHIVE_NAME} .tar.bz2
70101 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} )
71-
72102
73103include (GenProjectConfig)
74104
@@ -77,4 +107,18 @@ install(FILES
77107 ${schema_files}
78108 DESTINATION ${INSTALL_DATA_DIR} /mfast)
79109
80-
110+ # Print summary
111+ message (STATUS "" )
112+ message (STATUS "CMAKE_COMMAND: " ${CMAKE_COMMAND} )
113+ message (STATUS "CMAKE_SYSTEM: " ${CMAKE_SYSTEM} )
114+ message (STATUS "CMAKE_SYSTEM_PROCESSOR: " ${CMAKE_SYSTEM_PROCESSOR} )
115+
116+ message (STATUS "CMAKE_CXX_COMPILER: " ${CMAKE_CXX_COMPILER} )
117+ message (STATUS "CMAKE_CXX_FLAGS: " ${CMAKE_CXX_FLAGS} )
118+ message (STATUS "CMAKE_BUILD_TYPE: " ${CMAKE_BUILD_TYPE} )
119+
120+ message (STATUS "BUILD_SHARED_LIBS: " ${BUILD_SHARED_LIBS} )
121+ message (STATUS "BUILD_TESTS: " ${BUILD_TESTS} )
122+ message (STATUS "BUILD_EXAMPLES: " ${BUILD_EXAMPLES} )
123+ message (STATUS "BUILD_PACKAGES: " ${BUILD_PACKAGES} )
124+ message (STATUS "" )
0 commit comments