1 Description: Modify CmakeLists for Debian
2 Avoid using the boundled libraries but link the system ones.
3 Author: Don Armstrong <don@debian.org>
4 Author: Mattia Rizzolo <mattia@mapreri.org>
6 Last-Update: 2014-08-26
11 set( CMAKE_OSX_ARCHITECTURES "i386;x86_64" )
\r
13 # The parsing order is significant!
\r
14 -add_subdirectory( src/BoostParts )
\r
15 -add_subdirectory( src/Xerces )
\r
16 add_subdirectory( src/XercesExtensions )
\r
17 -add_subdirectory( src/zlib )
\r
18 add_subdirectory( src/zipios )
\r
19 -add_subdirectory( src/googlemock )
\r
20 add_subdirectory( src/FlightCrew )
\r
21 add_subdirectory( src/FlightCrew-cli )
\r
23 --- a/src/FlightCrew-cli/CMakeLists.txt
24 +++ b/src/FlightCrew-cli/CMakeLists.txt
26 # "Print all warnings" flag for GCC
\r
27 elseif( CMAKE_COMPILER_IS_GNUCXX )
\r
28 add_definitions( -Wall )
\r
29 + set_target_properties( ${PROJECT_NAME} PROPERTIES LINK_FLAGS -Wl,--as-needed )
\r
32 set_source_files_properties( main.cpp PROPERTIES COMPILE_DEFINITIONS FLIGHTCREW_FULL_VERSION="${FLIGHTCREW_FULL_VERSION}" )
\r
33 --- a/src/FlightCrew/CMakeLists.txt
34 +++ b/src/FlightCrew/CMakeLists.txt
37 # creating PCH's for MSVC and GCC on Linux
\r
38 include( ${CMAKE_SOURCE_DIR}/cmake_extras/CustomPCH.cmake )
\r
39 -set( ALL_INCLUDES ${BoostParts_SOURCE_DIR}
\r
40 - ${Xerces_SOURCE_DIR}
\r
41 - ${zipios_SOURCE_DIR} )
\r
42 +set( ALL_INCLUDES ${zipios_SOURCE_DIR} )
\r
43 set( GCC_PCH_TARGET gccPCH_fc )
\r
45 precompiled_header( SOURCES ALL_INCLUDES ${GCC_PCH_TARGET} ${PCH_NAME} )
\r
47 include_directories( ${CMAKE_CURRENT_BINARY_DIR}
\r
48 ${CMAKE_CURRENT_SOURCE_DIR}
\r
56 # when they want a dll, but NOT FC_DLL_EXPORTING
\r
57 add_definitions( -DFC_DLL_EXPORTING -DFC_BUILT_AS_DLL )
\r
58 add_library( ${PROJECT_NAME} SHARED ${SOURCES} )
\r
59 + SET_TARGET_PROPERTIES(
\r
66 add_library( ${PROJECT_NAME} ${SOURCES} )
\r
69 -target_link_libraries( ${PROJECT_NAME} zipios BoostParts XercesExtensions )
\r
70 +find_library(LIB_ZLIB z)
\r
71 +find_library(BOOST_DT boost_date_time)
\r
72 +find_library(BOOST_FS boost_filesystem)
\r
73 +find_library(BOOST_PO boost_program_options)
\r
74 +find_library(BOOST_RE boost_regex)
\r
75 +find_library(BOOST_S boost_system)
\r
76 +find_library(BOOST_T boost_thread)
\r
77 +find_library(LIB_XERCES xerces-c)
\r
78 +find_library(PTHREAD pthread)
\r
79 +SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES LINK_FLAGS -Wl,--as-needed)
\r
80 +target_link_libraries( ${PROJECT_NAME} ${LIB_ZLIB} ${BOOST_DT} ${BOOST_FS} ${BOOST_PO} ${BOOST_RE} ${BOOST_S} ${BOOST_T} zipios ${LIB_XERCES} XercesExtensions ${PTHREAD} )
\r
81 +INSTALL(TARGETS ${PROJECT_NAME} LIBRARY DESTINATION lib COMPONENT libraries)
\r
82 +INSTALL(FILES flightcrew.h exception.h DllExporting.h Result.h Misc/ErrorResultCollector.h ResultId.h ResultType.h DESTINATION include/${PROJECT_NAME})
\r
84 #############################################################################
\r
87 add_dependencies( ${PROJECT_NAME} ${GCC_PCH_TARGET} )
\r
90 -# needed for correct Xerces header inclusion
\r
91 -add_definitions( -DXERCES_STATIC_LIBRARY )
\r
93 #############################################################################
\r
95 # We don't build the tests when fc is built as a shared
\r
96 --- a/src/FlightCrew-gui/CMakeLists.txt
97 +++ b/src/FlightCrew-gui/CMakeLists.txt
99 # and the headers for the linked-to libraries
\r
100 include_directories( ${CMAKE_CURRENT_SOURCE_DIR}
\r
101 ${CMAKE_CURRENT_BINARY_DIR}
\r
102 - ${BoostParts_SOURCE_DIR}
\r
103 +# ${BoostParts_SOURCE_DIR}
\r
104 ${FlightCrew_SOURCE_DIR}
\r
105 ${XercesExtensions_SOURCE_DIR}
\r
108 # "Print all warnings" flag for GCC
\r
109 elseif( CMAKE_COMPILER_IS_GNUCXX )
\r
110 add_definitions( -Wall )
\r
111 + set_target_properties( ${PROJECT_NAME} PROPERTIES LINK_FLAGS -Wl,--as-needed )
\r
114 set_source_files_properties( MainWindow.cpp PROPERTIES COMPILE_DEFINITIONS FLIGHTCREW_FULL_VERSION="${FLIGHTCREW_FULL_VERSION}" )
\r
116 WORKING_DIRECTORY ${WORK_DIR}
\r
117 DEPENDS addframeworks )
\r
120 + # these rules are so that we don't do any crazy installer
\r
121 + # building which we've stripped out anyway
\r
122 + set( WORK_DIR "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" )
\r
123 # For Linux and Windows, provide binary installers.
\r
124 # For this to work on Linux, InstallJammer needs to be installed and on the system path.
\r
125 # For this to work on Windows, Inno Setup's iscc compiler needs to be installed and on the system path.
\r
126 --- a/src/FlightCrew/tests/CMakeLists.txt
127 +++ b/src/FlightCrew/tests/CMakeLists.txt
129 # That means that subdirs inherit the include_directories of their parents.
\r
130 # So techincally we don't need to include Xerces etc.
\r
131 include_directories( ${CMAKE_CURRENT_BINARY_DIR}
\r
132 - ${CMAKE_CURRENT_SOURCE_DIR}
\r
133 - ../../BoostParts
\r
135 ../../XercesExtensions
\r
136 - ../../googlemock/include
\r
137 - ../../googlemock/gtest/include
\r
139 + /usr/include/gtest/
\r
141 + ${CMAKE_CURRENT_SOURCE_DIR}
\r
144 link_directories ( ${PROJECT_BINARY_DIR}/lib )
\r
147 add_executable( ${PROJECT_NAME} ${TEST_SOURCES} )
\r
149 -target_link_libraries( ${PROJECT_NAME} FlightCrew gmock )
\r
150 +add_library( GOOGLE_MOCK_LIB STATIC /usr/src/gmock/src/gmock-all.cc /usr/src/gtest/src/gtest-all.cc)
\r
152 +target_link_libraries( ${PROJECT_NAME} FlightCrew GOOGLE_MOCK_LIB )
\r
154 #############################################################################
\r
159 # needed for correct Xerces header inclusion
\r
160 -add_definitions( -DXERCES_STATIC_LIBRARY )
\r
161 +# add_definitions( -DXERCES_STATIC_LIBRARY )
\r
163 #############################################################################
\r
165 --- a/src/XercesExtensions/CMakeLists.txt
166 +++ b/src/XercesExtensions/CMakeLists.txt
168 # We need to pick up the stdafx.h file
\r
169 # and the headers for the linked-to libraries
\r
170 include_directories( ${CMAKE_CURRENT_SOURCE_DIR}
\r
177 link_directories ( ${PROJECT_BINARY_DIR}/lib )
\r
179 add_library( ${PROJECT_NAME} ${SOURCES} )
\r
181 -target_link_libraries( ${PROJECT_NAME} Xerces )
\r
182 +find_library(LIB_XERCES xerces-c)
\r
183 +target_link_libraries( ${PROJECT_NAME} ${LIB_XERCES} )
\r
185 #############################################################################
\r
189 # "Print all warnings" flag for GCC
\r
190 elseif( CMAKE_COMPILER_IS_GNUCXX )
\r
191 + SET_TARGET_PROPERTIES( ${PROJECT_NAME} PROPERTIES COMPILE_FLAGS -fPIC)
\r
192 add_definitions( -Wall )
\r
195 # needed for correct Xerces header inclusion
\r
196 -add_definitions( -DXERCES_STATIC_LIBRARY )
\r
197 +# add_definitions( -DXERCES_STATIC_LIBRARY )
\r
199 --- a/src/zipios/CMakeLists.txt
200 +++ b/src/zipios/CMakeLists.txt
203 add_library( ${PROJECT_NAME} ${SOURCES} )
\r
205 -target_link_libraries( ${PROJECT_NAME} zlib BoostParts )
\r
207 +find_library(LIB_ZLIB z)
\r
208 +find_library(BOOST_DT boost_date_time)
\r
209 +find_library(BOOST_FS boost_filesystem)
\r
210 +find_library(BOOST_PO boost_program_options)
\r
211 +find_library(BOOST_RE boost_regex)
\r
212 +find_library(BOOST_S boost_system)
\r
213 +find_library(BOOST_T boost_thread)
\r
214 +target_link_libraries( ${PROJECT_NAME} ${LIB_ZLIB} ${BOOST_DT} ${BOOST_FS} ${BOOST_PO} ${BOOST_RE} ${BOOST_S} ${BOOST_T})
\r
216 #############################################################################
\r
220 # "Print all warnings" flag for GCC
\r
221 elseif( CMAKE_COMPILER_IS_GNUCXX )
\r
222 + SET_TARGET_PROPERTIES( ${PROJECT_NAME} PROPERTIES COMPILE_FLAGS -fPIC)
\r
223 add_definitions( -Wall )
\r