5
5
cmake_minimum_required (VERSION 2.8.11 )
6
6
project (mFAST CXX )
7
7
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
+
8
18
if (POLICY CMP0054 )
9
19
cmake_policy (SET CMP0054 OLD )
10
20
endif ()
11
21
12
- list (APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR } /cmake" )
22
+ list (APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR } /cmake" )
13
23
14
24
set (MFAST_MAJOR_VERSION 1 )
15
25
set (MFAST_MINOR_VERSION 3 )
16
26
set (MFAST_PATCH_VERSION 0 )
17
27
set (MFAST_VERSION ${MFAST_MAJOR_VERSION} .${MFAST_MINOR_VERSION}.${MFAST_PATCH_VERSION} )
18
28
set (MFAST_SOVERSION ${MFAST_MAJOR_VERSION} .${MFAST_MINOR_VERSION} )
19
29
20
- set (CPACK_PACKAGE_VERSION ${MFAST_VERSION} )
21
- set (CPACK_PACKAGE_NAME "mfast" )
22
-
23
- include (CPack )
24
30
include (SetInstallPaths )
25
31
include (Emscripten )
26
32
include (SetCXXStandard )
@@ -30,6 +36,30 @@ include(SetupCoverage)
30
36
# flag to enable building shared/dynamic library
31
37
set (BUILD_SHARED_LIBS OFF CACHE BOOL "build shared/dynamic library" )
32
38
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 "[email protected] " )
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
+
33
63
find_package (Boost 1.56.0 REQUIRED )
34
64
include_directories (${Boost_INCLUDE_DIR} )
35
65
include_directories (${CMAKE_CURRENT_SOURCE_DIR} /tinyxml2 )
@@ -48,27 +78,27 @@ set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
48
78
add_subdirectory (src )
49
79
include (FastTypeGenTarget )
50
80
51
- enable_testing ()
52
- add_subdirectory (tests )
81
+ if (BUILD_TESTS )
82
+ enable_testing ()
83
+ add_subdirectory (tests )
84
+ endif (BUILD_TESTS )
53
85
54
86
if (BUILD_SHARED_LIBS )
55
87
set (MFAST_LIBRARIES "${MFAST_SHARED_LIBRARIES} " )
56
88
else (BUILD_SHARED_LIBS )
57
89
set (MFAST_LIBRARIES "${MFAST_STATIC_LIBRARIES} " )
58
90
endif (BUILD_SHARED_LIBS )
59
91
60
- add_subdirectory (examples )
61
-
92
+ if (BUILD_EXAMPLES )
93
+ add_subdirectory (examples )
94
+ endif (BUILD_EXAMPLES )
62
95
63
96
# Setting up dist target
64
- # ===============================
65
-
66
97
set (ARCHIVE_NAME ${CMAKE_PROJECT_NAME} -${MFAST_VERSION} )
67
98
add_custom_target (dist
68
99
COMMAND git archive --prefix=${ARCHIVE_NAME}/ HEAD
69
100
| bzip2 > ${CMAKE_BINARY_DIR} /${ARCHIVE_NAME}.tar.bz2
70
101
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} )
71
-
72
102
73
103
include (GenProjectConfig )
74
104
@@ -77,4 +107,18 @@ install(FILES
77
107
${schema_files}
78
108
DESTINATION ${INSTALL_DATA_DIR} /mfast )
79
109
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