|
1 | 1 | cmake_minimum_required(VERSION 3.6) |
2 | 2 |
|
| 3 | +include("cmake/HunterGate.cmake") |
| 4 | +HunterGate( |
| 5 | + URL "https://github.com/ruslo/hunter/archive/v0.23.83.tar.gz" |
| 6 | + SHA1 "12dec078717539eb7b03e6d2a17797cba9be9ba9" |
| 7 | +) |
| 8 | + |
3 | 9 | project(breakpad) |
4 | 10 |
|
| 11 | +list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake/modules") |
| 12 | + |
5 | 13 | set(generated_dir "${CMAKE_CURRENT_BINARY_DIR}/generated") |
6 | 14 | set(config_install_dir "lib/cmake/${PROJECT_NAME}") |
7 | 15 | set(include_install_dir "include") |
@@ -186,34 +194,39 @@ add_definitions( |
186 | 194 | ) |
187 | 195 |
|
188 | 196 | if(WIN32) |
189 | | - if(WIN32) |
190 | | - file(GLOB_RECURSE LIBBREAKPAD_CLIENT_SOURCES src/client/windows/*.cc src/common/windows/*.cc) |
191 | | - include_directories("C:/Program Files (x86)/Microsoft Visual Studio 14.0/DIA SDK/include") |
192 | | - include_directories("C:/Program Files (x86)/Microsoft Visual Studio 12.0/DIA SDK/include") |
193 | | - elseif(APPLE) |
194 | | - add_definitions(-DHAVE_MACH_O_NLIST_H) |
195 | | - file(GLOB_RECURSE LIBBREAKPAD_CLIENT_SOURCES src/client/mac/*.cc src/common/mac/*.cc) |
196 | | - else() |
197 | | - add_definitions(-DHAVE_A_OUT_H) |
198 | | - file(GLOB_RECURSE LIBBREAKPAD_CLIENT_SOURCES src/client/linux/*.cc src/common/linux/*.cc) |
199 | | - endif() |
200 | | - file(GLOB LIBBREAKPAD_COMMON_SOURCES src/common/*.cc src/common/*.c src/client/*.cc) |
201 | | - list(APPEND LIBBREAKPAD_CLIENT_SOURCES ${LIBBREAKPAD_COMMON_SOURCES}) |
202 | | - list(FILTER LIBBREAKPAD_CLIENT_SOURCES EXCLUDE REGEX "/tests|/unittests|_unittest") |
203 | | - if(WIN32) |
204 | | - list(FILTER LIBBREAKPAD_CLIENT_SOURCES EXCLUDE REGEX "language.cc|path_helper.cc|stabs_to_module.cc|stabs_reader.cc|minidump_file_writer.cc") |
205 | | - endif() |
206 | | - add_library(libbreakpad_client ${LIBBREAKPAD_CLIENT_SOURCES}) |
207 | | - target_include_directories(libbreakpad_client |
208 | | - PUBLIC |
209 | | - $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src> |
210 | | - $<INSTALL_INTERFACE:${include_install_dir}/breakpad> |
211 | | - ) |
212 | | - |
| 197 | + file(GLOB_RECURSE LIBBREAKPAD_CLIENT_SOURCES src/client/windows/*.cc src/common/windows/*.cc) |
| 198 | + find_package(DiaSDK) |
| 199 | + include_directories("${DIASDK_INCLUDE_DIRS}") |
| 200 | +elseif(APPLE) |
| 201 | + add_definitions(-DHAVE_MACH_O_NLIST_H) |
| 202 | + file(GLOB_RECURSE LIBBREAKPAD_CLIENT_SOURCES src/client/mac/*.cc src/common/mac/*.cc) |
| 203 | +else() |
| 204 | + add_definitions(-DHAVE_A_OUT_H) |
| 205 | + file(GLOB_RECURSE LIBBREAKPAD_CLIENT_SOURCES src/client/linux/*.cc src/common/linux/*.cc) |
| 206 | +endif() |
| 207 | +file(GLOB LIBBREAKPAD_COMMON_SOURCES src/common/*.cc src/common/*.c src/client/*.cc) |
| 208 | +list(APPEND LIBBREAKPAD_CLIENT_SOURCES ${LIBBREAKPAD_COMMON_SOURCES}) |
| 209 | +list(FILTER LIBBREAKPAD_CLIENT_SOURCES EXCLUDE REGEX "/tests|/unittests|_test.cc$|_unittest.cc$") |
| 210 | +if(WIN32) |
| 211 | + list(FILTER LIBBREAKPAD_CLIENT_SOURCES EXCLUDE REGEX "language.cc|path_helper.cc|stabs_to_module.cc|stabs_reader.cc|minidump_file_writer.cc") |
213 | 212 | endif() |
| 213 | +add_library(libbreakpad_client ${LIBBREAKPAD_CLIENT_SOURCES}) |
| 214 | +target_include_directories(libbreakpad_client |
| 215 | + PUBLIC |
| 216 | + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src> |
| 217 | + $<INSTALL_INTERFACE:${include_install_dir}/breakpad> |
| 218 | +) |
| 219 | +if(NOT WIN32 AND NOT APPLE) |
| 220 | + hunter_add_package(gflags) |
| 221 | + hunter_add_package(glog) |
| 222 | + find_package(gflags CONFIG REQUIRED) |
| 223 | + find_package(glog CONFIG REQUIRED) |
| 224 | + target_link_libraries(libbreakpad_client PUBLIC gflags glog::glog) |
| 225 | +endif() |
| 226 | + |
214 | 227 |
|
215 | 228 | install( |
216 | | - TARGETS libbreakpad libdisasm |
| 229 | + TARGETS libbreakpad libdisasm libbreakpad_client |
217 | 230 | EXPORT ${targets_export_name} |
218 | 231 | LIBRARY DESTINATION lib |
219 | 232 | ARCHIVE DESTINATION lib |
|
0 commit comments