~ubuntu-branches/ubuntu/trusty/liblas/trusty-proposed

« back to all changes in this revision

Viewing changes to src/CMakeLists.txt

  • Committer: Package Import Robot
  • Author(s): Francesco Paolo Lovergine
  • Date: 2014-01-05 17:00:29 UTC
  • mfrom: (7.1.2 sid)
  • Revision ID: package-import@ubuntu.com-20140105170029-ddtp0j63x5jvck2u
Tags: 1.7.0+dfsg-2
Fixed missing linking of system boost component.
(closes: #733282)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
###############################################################################
 
2
#
 
3
# src/CMakeLists.txt controls building of libLAS library
 
4
#
 
5
# Copyright (c) 2009 Mateusz Loskot <mateusz@loskot.net>
 
6
#
 
7
###############################################################################
 
8
 
 
9
# Collect dependencies configuration
 
10
if(GDAL_FOUND)
 
11
  set(LIBLAS_GDAL_CPP
 
12
    gt_citation.cpp
 
13
    gt_wkt_srs.cpp
 
14
    tifvsi.cpp)
 
15
endif()
 
16
 
 
17
###############################################################################
 
18
# Source files specification
 
19
 
 
20
set(LIBLAS_HEADERS_DIR ../include/liblas)
 
21
 
 
22
set(LIBLAS_HPP
 
23
  ${LIBLAS_HEADERS_DIR}/chipper.hpp
 
24
  ${LIBLAS_HEADERS_DIR}/exception.hpp
 
25
  ${LIBLAS_HEADERS_DIR}/export.hpp
 
26
  ${LIBLAS_HEADERS_DIR}/factory.hpp 
 
27
  ${LIBLAS_HEADERS_DIR}/guid.hpp
 
28
  ${LIBLAS_HEADERS_DIR}/iterator.hpp
 
29
  ${LIBLAS_HEADERS_DIR}/bounds.hpp
 
30
  ${LIBLAS_HEADERS_DIR}/classification.hpp
 
31
  ${LIBLAS_HEADERS_DIR}/color.hpp
 
32
  ${LIBLAS_HEADERS_DIR}/dimension.hpp  
 
33
  ${LIBLAS_HEADERS_DIR}/error.hpp
 
34
  ${LIBLAS_HEADERS_DIR}/filter.hpp
 
35
  ${LIBLAS_HEADERS_DIR}/header.hpp
 
36
  ${LIBLAS_HEADERS_DIR}/index.hpp
 
37
  ${LIBLAS_HEADERS_DIR}/point.hpp
 
38
  ${LIBLAS_HEADERS_DIR}/reader.hpp
 
39
  ${LIBLAS_HEADERS_DIR}/schema.hpp
 
40
  ${LIBLAS_HEADERS_DIR}/spatialreference.hpp
 
41
  ${LIBLAS_HEADERS_DIR}/transform.hpp  
 
42
  ${LIBLAS_HEADERS_DIR}/variablerecord.hpp
 
43
  ${LIBLAS_HEADERS_DIR}/writer.hpp
 
44
  ${LIBLAS_HEADERS_DIR}/liblas.hpp
 
45
  ${LIBLAS_HEADERS_DIR}/utility.hpp
 
46
  ${LIBLAS_HEADERS_DIR}/version.hpp)
 
47
 
 
48
set(LIBLAS_EXTERNAL_HPP)
 
49
 
 
50
set(LIBLAS_EXTERNAL_PROPERTY_TREE_HPP
 
51
  ${LIBLAS_HEADERS_DIR}/external/property_tree/exceptions.hpp
 
52
  ${LIBLAS_HEADERS_DIR}/external/property_tree/id_translator.hpp
 
53
  ${LIBLAS_HEADERS_DIR}/external/property_tree/info_parser.hpp
 
54
  ${LIBLAS_HEADERS_DIR}/external/property_tree/ini_parser.hpp
 
55
  ${LIBLAS_HEADERS_DIR}/external/property_tree/json_parser.hpp
 
56
  ${LIBLAS_HEADERS_DIR}/external/property_tree/ptree.hpp
 
57
  ${LIBLAS_HEADERS_DIR}/external/property_tree/ptree_fwd.hpp
 
58
  ${LIBLAS_HEADERS_DIR}/external/property_tree/ptree_serialization.hpp
 
59
  ${LIBLAS_HEADERS_DIR}/external/property_tree/stream_translator.hpp
 
60
  ${LIBLAS_HEADERS_DIR}/external/property_tree/string_path.hpp
 
61
  ${LIBLAS_HEADERS_DIR}/external/property_tree/xml_parser.hpp)
 
62
 
 
63
set(LIBLAS_EXTERNAL_PROPERTY_TREE_DETAIL_HPP
 
64
  ${LIBLAS_HEADERS_DIR}/external/property_tree/detail/exception_implementation.hpp
 
65
  ${LIBLAS_HEADERS_DIR}/external/property_tree/detail/file_parser_error.hpp
 
66
  ${LIBLAS_HEADERS_DIR}/external/property_tree/detail/info_parser_error.hpp
 
67
  ${LIBLAS_HEADERS_DIR}/external/property_tree/detail/info_parser_read.hpp
 
68
  ${LIBLAS_HEADERS_DIR}/external/property_tree/detail/info_parser_utils.hpp
 
69
  ${LIBLAS_HEADERS_DIR}/external/property_tree/detail/info_parser_write.hpp
 
70
  ${LIBLAS_HEADERS_DIR}/external/property_tree/detail/info_parser_writer_settings.hpp
 
71
  ${LIBLAS_HEADERS_DIR}/external/property_tree/detail/json_parser_error.hpp
 
72
  ${LIBLAS_HEADERS_DIR}/external/property_tree/detail/json_parser_read.hpp
 
73
  ${LIBLAS_HEADERS_DIR}/external/property_tree/detail/json_parser_write.hpp
 
74
  ${LIBLAS_HEADERS_DIR}/external/property_tree/detail/ptree_implementation.hpp
 
75
  ${LIBLAS_HEADERS_DIR}/external/property_tree/detail/ptree_utils.hpp
 
76
  ${LIBLAS_HEADERS_DIR}/external/property_tree/detail/rapidxml.hpp
 
77
  ${LIBLAS_HEADERS_DIR}/external/property_tree/detail/xml_parser_error.hpp
 
78
  ${LIBLAS_HEADERS_DIR}/external/property_tree/detail/xml_parser_flags.hpp
 
79
  ${LIBLAS_HEADERS_DIR}/external/property_tree/detail/xml_parser_read_rapidxml.hpp
 
80
  ${LIBLAS_HEADERS_DIR}/external/property_tree/detail/xml_parser_utils.hpp
 
81
  ${LIBLAS_HEADERS_DIR}/external/property_tree/detail/xml_parser_write.hpp
 
82
  ${LIBLAS_HEADERS_DIR}/external/property_tree/detail/xml_parser_writer_settings.hpp)
 
83
 
 
84
set(LIBLAS_DETAIL_HPP
 
85
  ${LIBLAS_HEADERS_DIR}/detail/binary.hpp
 
86
  ${LIBLAS_HEADERS_DIR}/detail/endian.hpp
 
87
  ${LIBLAS_HEADERS_DIR}/detail/fwd.hpp
 
88
  ${LIBLAS_HEADERS_DIR}/detail/pointrecord.hpp
 
89
  ${LIBLAS_HEADERS_DIR}/detail/timer.hpp
 
90
  ${LIBLAS_HEADERS_DIR}/detail/private_utility.hpp
 
91
  ${LIBLAS_HEADERS_DIR}/detail/singleton.hpp
 
92
  ${LIBLAS_HEADERS_DIR}/detail/zippoint.hpp)
 
93
 
 
94
set(LIBLAS_DETAIL_INDEX_HPP
 
95
  ${LIBLAS_HEADERS_DIR}/detail/index/indexoutput.hpp
 
96
  ${LIBLAS_HEADERS_DIR}/detail/index/indexcell.hpp)
 
97
  
 
98
set(LIBLAS_DETAIL_READER_HPP
 
99
  ${LIBLAS_HEADERS_DIR}/detail/reader/cachedreader.hpp
 
100
  ${LIBLAS_HEADERS_DIR}/detail/reader/reader.hpp  
 
101
  ${LIBLAS_HEADERS_DIR}/detail/reader/zipreader.hpp  
 
102
  ${LIBLAS_HEADERS_DIR}/detail/reader/header.hpp
 
103
  )
 
104
 
 
105
set(LIBLAS_DETAIL_WRITER_HPP
 
106
  ${LIBLAS_HEADERS_DIR}/detail/writer/writer.hpp
 
107
  ${LIBLAS_HEADERS_DIR}/detail/writer/zipwriter.hpp
 
108
  ${LIBLAS_HEADERS_DIR}/detail/writer/point.hpp
 
109
  ${LIBLAS_HEADERS_DIR}/detail/writer/header.hpp)
 
110
 
 
111
set(LIBLAS_CPP
 
112
  chipper.cpp
 
113
  factory.cpp
 
114
  classification.cpp
 
115
  color.cpp
 
116
  dimension.cpp
 
117
  error.cpp
 
118
  filter.cpp
 
119
  header.cpp
 
120
  index.cpp
 
121
  point.cpp
 
122
  reader.cpp
 
123
  spatialreference.cpp
 
124
  schema.cpp
 
125
  transform.cpp
 
126
  utility.cpp
 
127
  variablerecord.cpp
 
128
  writer.cpp
 
129
  version.cpp)
 
130
 
 
131
set(LIBLAS_DETAIL_CPP
 
132
  detail/utility.cpp
 
133
  detail/sha1.cpp
 
134
  detail/zippoint.cpp
 
135
)
 
136
  
 
137
set(LIBLAS_DETAIL_INDEX_CPP
 
138
  detail/index/indexcell.cpp
 
139
  detail/index/indexoutput.cpp)
 
140
 
 
141
set(LIBLAS_DETAIL_READER_CPP
 
142
  detail/reader/header.cpp
 
143
  detail/reader/reader.cpp
 
144
  detail/reader/zipreader.cpp
 
145
  detail/reader/cachedreader.cpp)
 
146
 
 
147
set(LIBLAS_DETAIL_WRITER_CPP
 
148
  detail/writer/header.cpp
 
149
  detail/writer/point.cpp
 
150
  detail/writer/zipwriter.cpp
 
151
  detail/writer/writer.cpp)
 
152
 
 
153
# Group source files for IDE source explorers (e.g. Visual Studio)
 
154
source_group("CMake Files" FILES CMakeLists.txt)
 
155
source_group("Header Files" FILES ${LIBLAS_HPP})
 
156
source_group("Header Files\\external" FILES ${LIBLAS_EXTERNAL_HPP})
 
157
source_group("Header Files\\external\\property_tree" FILES ${LIBLAS_EXTERNAL_PROPERTY_TREE_HPP})
 
158
source_group("Header Files\\external\\property_tree\\detail" FILES ${LIBLAS_EXTERNAL_PROPERTY_TREE_DETAIL_HPP})
 
159
source_group("Header Files\\detail" FILES ${LIBLAS_DETAIL_HPP})
 
160
source_group("Header Files\\detail\\index" FILES ${LIBLAS_DETAIL_INDEX_HPP})
 
161
source_group("Header Files\\detail\\reader" FILES ${LIBLAS_DETAIL_READER_HPP})
 
162
source_group("Header Files\\detail\\writer" FILES ${LIBLAS_DETAIL_WRITER_HPP})
 
163
source_group("Source Files" FILES ${LIBLAS_CPP})
 
164
source_group("Source Files\\detail" FILES ${LIBLAS_DETAIL_CPP})
 
165
source_group("Source Files\\detail\\index" FILES ${LIBLAS_DETAIL_INDEX_CPP})
 
166
source_group("Source Files\\detail\\reader" FILES ${LIBLAS_DETAIL_READER_CPP})
 
167
source_group("Source Files\\detail\\writer" FILES ${LIBLAS_DETAIL_WRITER_CPP})
 
168
if(GDAL_FOUND)
 
169
    source_group("Source Files\\gdal" FILES ${LIBLAS_GDAL_CPP})
 
170
endif()
 
171
 
 
172
# Diable Visual C++ language extensions when building libLAS library
 
173
# Need this enabled for boost to work -- hobu
 
174
#if (WIN32)
 
175
#  if (MSVC)
 
176
#    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Za")
 
177
#  endif()
 
178
#endif()
 
179
 
 
180
# Standard include directory of libLAS library
 
181
include_directories(../include)
 
182
 
 
183
###############################################################################
 
184
# Targets settings
 
185
 
 
186
set(LIBLAS_SOURCES
 
187
  ${LIBLAS_HPP}
 
188
  ${LIBLAS_EXTERNAL_HPP}
 
189
  ${LIBLAS_EXTERNAL_PROPERTY_TREE_HPP}
 
190
  ${LIBLAS_EXTERNAL_PROPERTY_TREE_DETAIL_HPP}
 
191
  ${LIBLAS_DETAIL_HPP}
 
192
  ${LIBLAS_DETAIL_READER_HPP}
 
193
  ${LIBLAS_DETAIL_WRITER_HPP}
 
194
  ${LIBLAS_DETAIL_INDEX_CPP}
 
195
  ${LIBLAS_CPP}
 
196
  ${LIBLAS_DETAIL_CPP}
 
197
  ${LIBLAS_DETAIL_READER_CPP}
 
198
  ${LIBLAS_DETAIL_WRITER_CPP}
 
199
  ${LIBLAS_GDAL_CPP})
 
200
 
 
201
set(LIBLAS_C_SOURCES
 
202
  ${LIBLAS_HEADERS_DIR}/capi/las_config.h
 
203
  ${LIBLAS_HEADERS_DIR}/capi/las_version.h
 
204
  ${LIBLAS_HEADERS_DIR}/capi/liblas.h
 
205
  c_api.cpp)
 
206
 
 
207
# NOTE:
 
208
# This hack is required to correctly link static into shared library.
 
209
# Such practice is not recommended as not portable, instead each library,
 
210
# static and shared should be built from sources separately.
 
211
#if(UNIX)
 
212
#  add_definitions("-fPIC")
 
213
#endif()
 
214
 
 
215
if(WIN32)
 
216
    add_definitions("-DLAS_DLL_EXPORT=1")
 
217
if (NOT WITH_STATIC_LASZIP)
 
218
    add_definitions("-DLASZIP_DLL_IMPORT=1")
 
219
endif()
 
220
endif()
 
221
 
 
222
add_library(${LIBLAS_LIB_NAME} SHARED ${LIBLAS_SOURCES})
 
223
add_library(${LIBLAS_C_LIB_NAME} SHARED ${LIBLAS_C_SOURCES})
 
224
 
 
225
target_link_libraries(${LIBLAS_LIB_NAME}
 
226
  ${LIBLAS_LIB_NAME}
 
227
  ${TIFF_LIBRARY}
 
228
  ${GEOTIFF_LIBRARY}
 
229
  ${GDAL_LIBRARY}
 
230
  ${LASZIP_LIBRARY}
 
231
  ${Boost_LIBRARIES})
 
232
 
 
233
target_link_libraries(${LIBLAS_C_LIB_NAME}
 
234
  ${LIBLAS_LIB_NAME}
 
235
  ${TIFF_LIBRARY}
 
236
  ${GEOTIFF_LIBRARY}
 
237
  ${GDAL_LIBRARY}
 
238
  ${LASZIP_LIBRARY}
 
239
  ${Boost_LIBRARIES})
 
240
 
 
241
set_target_properties(${LIBLAS_LIB_NAME}
 
242
  PROPERTIES SOVERSION "${LIBLAS_LIB_SOVERSION}" )
 
243
set_target_properties(${LIBLAS_C_LIB_NAME}
 
244
  PROPERTIES SOVERSION "${LIBLAS_C_LIB_SOVERSION}" )
 
245
 
 
246
if (APPLE)
 
247
  set_target_properties(
 
248
    ${LIBLAS_C_LIB_NAME}
 
249
    PROPERTIES
 
250
    INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib")
 
251
  set_target_properties(
 
252
    ${LIBLAS_LIB_NAME}
 
253
    PROPERTIES
 
254
    INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib")
 
255
endif()
 
256
 
 
257
###############################################################################
 
258
# Targets installation
 
259
 
 
260
install(TARGETS ${LIBLAS_LIB_NAME} ${LIBLAS_C_LIB_NAME}
 
261
  RUNTIME DESTINATION ${LIBLAS_BIN_DIR}
 
262
  LIBRARY DESTINATION ${LIBLAS_LIB_DIR}
 
263
  ARCHIVE DESTINATION ${LIBLAS_LIB_DIR})
 
264
 
 
265
install(DIRECTORY ${LIBLAS_HEADERS_DIR}
 
266
  DESTINATION ${LIBLAS_INCLUDE_DIR}
 
267
  FILES_MATCHING PATTERN "*.h" PATTERN "*.hpp")