Skip to content

Commit e19589e

Browse files
committed
support static and MXE
1 parent 9b583bc commit e19589e

File tree

2 files changed

+27
-9
lines changed

2 files changed

+27
-9
lines changed

CMakeLists.txt

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,11 @@ pkg_search_module(CURL REQUIRED libcurl)
4242
pkg_search_module(ZIP REQUIRED libzip)
4343
pkg_search_module(JSON REQUIRED jsoncpp)
4444

45+
option(MXE32_STATIC "Build using MXE i686 static" OFF)
46+
option(MXE64_STATIC "Build using MXE x86_64 static" OFF)
47+
option(MXE32_SHARED "Build using MXE i686 shared" OFF)
48+
option(MXE64_SHARED "Build using MXE x86_64 shared" OFF)
49+
4550
if(NOT EXISTS ${BREAKPAD_SRC}/configure)
4651
execute_process(COMMAND ${GIT_EXECUTABLE} submodule update --init --recursive
4752
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
@@ -53,8 +58,17 @@ endif()
5358

5459
if(NOT EXISTS ${BREAKPAD_BIN}/src/libbreakpad.a)
5560
message("-- MISSING BREAKPAD (will try to build)")
61+
if(MXE32_STATIC)
62+
set(BREAKPAD_OPTIONS "--host=i686-w64-mingw32.static")
63+
elseif(MXE64_STATIC)
64+
set(BREAKPAD_OPTIONS "--host=x86_64-w64-mingw32.static")
65+
elseif(MXE32_SHARED)
66+
set(BREAKPAD_OPTIONS "--host=i686-w64-mingw32.shared")
67+
elseif(MXE64_SHARED)
68+
set(BREAKPAD_OPTIONS "--host=x86_64-w64-mingw32.shared")
69+
endif()
5670
execute_process(
57-
COMMAND bash ${CMAKE_CURRENT_SOURCE_DIR}/scripts/build_breakpad.sh ${BREAKPAD_SRC}
71+
COMMAND bash ${CMAKE_CURRENT_SOURCE_DIR}/scripts/build_breakpad.sh ${BREAKPAD_SRC} ${BREAKPAD_OPTIONS}
5872
WORKING_DIRECTORY ${BREAKPAD_BIN}
5973
)
6074
endif()
@@ -64,7 +78,7 @@ if(CMAKE_BUILD_TYPE MATCHES "^(release|Release|RELEASE)$")
6478
else()
6579
message("-- DEBUG BUILD")
6680
endif()
67-
add_compile_options(-Wall -Wextra)
81+
add_compile_options(-Wall -Wextra ${CURL_CFLAGS})
6882
add_definitions(-D__STDC_FORMAT_MACROS=1 -Wno-format)
6983
add_definitions(-DBREAKDOWN_URL=${BREAKDOWN_URL})
7084
add_definitions(-DBREAKDOWN_VERSION=${PROJECT_VERSION})
@@ -101,16 +115,16 @@ target_link_libraries(
101115
Qt5::Concurrent
102116
${BREAKPAD_BIN}/src/libbreakpad.a
103117
${BREAKPAD_BIN}/src/third_party/libdisasm/libdisasm.a
104-
${CURL_LIBRARIES}
105-
${ZIP_LIBRARIES}
106-
${JSON_LIBRARIES}
118+
${CURL_STATIC_LIBRARIES}
119+
${ZIP_STATIC_LIBRARIES}
120+
${JSON_STATIC_LIBRARIES}
107121
)
108122

109123
target_link_libraries(
110124
stackwalker
111125
${BREAKPAD_BIN}/src/libbreakpad.a
112126
${BREAKPAD_BIN}/src/third_party/libdisasm/libdisasm.a
113-
${CURL_LIBRARIES}
114-
${ZIP_LIBRARIES}
115-
${JSON_LIBRARIES}
127+
${CURL_STATIC_LIBRARIES}
128+
${ZIP_STATIC_LIBRARIES}
129+
${JSON_STATIC_LIBRARIES}
116130
)

scripts/build_breakpad.sh

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
11
#!/bin/sh
2-
${1}/configure && make
2+
SRC="${1:-.}"
3+
OPT="${2:-}"
4+
echo "${SRC}/configure --disabled-shared $OPT"
5+
${SRC}/configure --disable-shared $OPT || exit 1
6+
make || exit 1
37

0 commit comments

Comments
 (0)