]> git.donarmstrong.com Git - flightcrew.git/blob - debian/patches/modify_cmake_for_debian
update changelog, target experimental
[flightcrew.git] / debian / patches / modify_cmake_for_debian
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>
5 Forwarded: no
6 Last-Update: 2014-08-26
7
8 --- a/CMakeLists.txt
9 +++ b/CMakeLists.txt
10 @@ -41,12 +41,8 @@
11  set( CMAKE_OSX_ARCHITECTURES "i386;x86_64" )\r
12  \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
22  \r
23 --- a/src/FlightCrew-cli/CMakeLists.txt
24 +++ b/src/FlightCrew-cli/CMakeLists.txt
25 @@ -59,6 +59,7 @@
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
30  endif()\r
31  \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
35 @@ -50,9 +50,7 @@
36  \r
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
44  \r
45  precompiled_header( SOURCES ALL_INCLUDES ${GCC_PCH_TARGET} ${PCH_NAME} )\r
46 @@ -65,8 +63,6 @@
47  include_directories( ${CMAKE_CURRENT_BINARY_DIR}\r
48                       ${CMAKE_CURRENT_SOURCE_DIR}\r
49                       ../zipios \r
50 -                     ../BoostParts \r
51 -                     ../Xerces\r
52                       ../XercesExtensions\r
53                       ../utf8-cpp\r
54                     )\r
55 @@ -78,11 +74,29 @@
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
60 +      ${PROJECT_NAME}\r
61 +      PROPERTIES\r
62 +      SOVERSION 0\r
63 +      VERSION 0.7.2\r
64 +      )\r
65  else()\r
66      add_library( ${PROJECT_NAME} ${SOURCES} )\r
67  endif()\r
68  \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
83  \r
84  #############################################################################\r
85  \r
86 @@ -115,9 +129,6 @@
87      add_dependencies( ${PROJECT_NAME} ${GCC_PCH_TARGET} )\r
88  endif()\r
89  \r
90 -# needed for correct Xerces header inclusion\r
91 -add_definitions( -DXERCES_STATIC_LIBRARY )\r
92 -\r
93  #############################################################################\r
94  \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
98 @@ -67,7 +67,7 @@
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
106                       )\r
107 @@ -110,6 +110,7 @@
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
112  endif()\r
113  \r
114  set_source_files_properties( MainWindow.cpp PROPERTIES COMPILE_DEFINITIONS FLIGHTCREW_FULL_VERSION="${FLIGHTCREW_FULL_VERSION}" )\r
115 @@ -135,6 +136,10 @@
116                          WORKING_DIRECTORY ${WORK_DIR}\r
117                          DEPENDS addframeworks )\r
118                  \r
119 +elseif(DEBIAN)\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
128 @@ -41,12 +41,11 @@
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
134 -                     ../../Xerces \r
135                       ../../XercesExtensions \r
136 -                     ../../googlemock/include\r
137 -                     ../../googlemock/gtest/include\r
138 +                     /usr/src/gtest/\r
139 +                     /usr/include/gtest/\r
140 +                     /usr/src/gmock/\r
141 +                     ${CMAKE_CURRENT_SOURCE_DIR}\r
142                     )\r
143  \r
144  link_directories ( ${PROJECT_BINARY_DIR}/lib ) \r
145 @@ -65,7 +64,9 @@
146  \r
147  add_executable( ${PROJECT_NAME} ${TEST_SOURCES} )\r
148  \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
151 +\r
152 +target_link_libraries( ${PROJECT_NAME} FlightCrew GOOGLE_MOCK_LIB )\r
153  \r
154  #############################################################################\r
155  \r
156 @@ -101,7 +102,7 @@
157  endif()\r
158  \r
159  # needed for correct Xerces header inclusion\r
160 -add_definitions( -DXERCES_STATIC_LIBRARY )\r
161 +# add_definitions( -DXERCES_STATIC_LIBRARY )\r
162  \r
163  #############################################################################\r
164  \r
165 --- a/src/XercesExtensions/CMakeLists.txt
166 +++ b/src/XercesExtensions/CMakeLists.txt
167 @@ -16,14 +16,16 @@
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
171 -                     ../Xerces\r
172 -                     ../BoostParts )\r
173 +#                     ../Xerces\r
174 +#                     ../BoostParts \r
175 +)\r
176  \r
177  link_directories ( ${PROJECT_BINARY_DIR}/lib ) \r
178  \r
179  add_library( ${PROJECT_NAME} ${SOURCES} )\r
180  \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
184  \r
185  #############################################################################\r
186  \r
187 @@ -45,9 +47,10 @@
188  \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
193  endif()\r
194  \r
195  # needed for correct Xerces header inclusion\r
196 -add_definitions( -DXERCES_STATIC_LIBRARY )\r
197 +# add_definitions( -DXERCES_STATIC_LIBRARY )\r
198  \r
199 --- a/src/zipios/CMakeLists.txt
200 +++ b/src/zipios/CMakeLists.txt
201 @@ -25,7 +25,15 @@
202  \r
203  add_library( ${PROJECT_NAME} ${SOURCES} )\r
204  \r
205 -target_link_libraries( ${PROJECT_NAME} zlib BoostParts )\r
206 +\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
215  \r
216  #############################################################################\r
217  \r
218 @@ -44,6 +52,7 @@
219  \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
224  endif()\r
225  \r