Revamp CURL integration. Exclude it from APPLE
This commit is contained in:
parent
15a082b80b
commit
3a7cdeeae4
@ -43,6 +43,14 @@ set(SLIC3R_GTK "2" CACHE STRING "GTK version to use with wxWidgets on Linux")
|
|||||||
|
|
||||||
set(IS_CROSS_COMPILE FALSE)
|
set(IS_CROSS_COMPILE FALSE)
|
||||||
|
|
||||||
|
if (SLIC3R_STATIC)
|
||||||
|
# Prefer config scripts over find modules. This is helpful when building with
|
||||||
|
# the static dependencies. Many libraries have their own export scripts
|
||||||
|
# while having a Find<PkgName> module in standard cmake installation.
|
||||||
|
# (e.g. CURL)
|
||||||
|
set(CMAKE_FIND_PACKAGE_PREFER_CONFIG ON)
|
||||||
|
endif ()
|
||||||
|
|
||||||
if (APPLE)
|
if (APPLE)
|
||||||
set(CMAKE_FIND_FRAMEWORK LAST)
|
set(CMAKE_FIND_FRAMEWORK LAST)
|
||||||
set(CMAKE_FIND_APPBUNDLE LAST)
|
set(CMAKE_FIND_APPBUNDLE LAST)
|
||||||
@ -438,23 +446,6 @@ else()
|
|||||||
target_link_libraries(libcurl INTERFACE crypt32)
|
target_link_libraries(libcurl INTERFACE crypt32)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (SLIC3R_STATIC AND NOT SLIC3R_STATIC_EXCLUDE_CURL)
|
|
||||||
if (NOT APPLE)
|
|
||||||
# libcurl is always linked dynamically to the system libcurl on OSX.
|
|
||||||
# On other systems, libcurl is linked statically if SLIC3R_STATIC is set.
|
|
||||||
target_compile_definitions(libcurl INTERFACE CURL_STATICLIB)
|
|
||||||
endif()
|
|
||||||
if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
|
||||||
# As of now, our build system produces a statically linked libcurl,
|
|
||||||
# which links the OpenSSL library dynamically.
|
|
||||||
find_package(OpenSSL REQUIRED)
|
|
||||||
message("OpenSSL include dir: ${OPENSSL_INCLUDE_DIR}")
|
|
||||||
message("OpenSSL libraries: ${OPENSSL_LIBRARIES}")
|
|
||||||
target_include_directories(libcurl INTERFACE ${OPENSSL_INCLUDE_DIR})
|
|
||||||
target_link_libraries(libcurl INTERFACE ${OPENSSL_LIBRARIES})
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
## OPTIONAL packages
|
## OPTIONAL packages
|
||||||
|
|
||||||
# Find eigen3 or use bundled version
|
# Find eigen3 or use bundled version
|
||||||
@ -472,6 +463,10 @@ include_directories(BEFORE SYSTEM ${EIGEN3_INCLUDE_DIR})
|
|||||||
|
|
||||||
find_package(EXPAT REQUIRED)
|
find_package(EXPAT REQUIRED)
|
||||||
|
|
||||||
|
if (NOT TARGET EXPAT::EXPAT AND TARGET expat::expat)
|
||||||
|
add_library(EXPAT::EXPAT ALIAS expat::expat)
|
||||||
|
endif ()
|
||||||
|
|
||||||
find_package(PNG REQUIRED)
|
find_package(PNG REQUIRED)
|
||||||
|
|
||||||
set(OpenGL_GL_PREFERENCE "LEGACY")
|
set(OpenGL_GL_PREFERENCE "LEGACY")
|
||||||
|
9
deps/CMakeLists.txt
vendored
9
deps/CMakeLists.txt
vendored
@ -179,7 +179,12 @@ include(CGAL/CGAL.cmake)
|
|||||||
include(NLopt/NLopt.cmake)
|
include(NLopt/NLopt.cmake)
|
||||||
|
|
||||||
include(OpenSSL/OpenSSL.cmake)
|
include(OpenSSL/OpenSSL.cmake)
|
||||||
include(CURL/CURL.cmake)
|
|
||||||
|
set(CURL_PKG "")
|
||||||
|
if (NOT CURL_FOUND)
|
||||||
|
include(CURL/CURL.cmake)
|
||||||
|
set(CURL_PKG dep_CURL)
|
||||||
|
endif ()
|
||||||
|
|
||||||
include(JPEG/JPEG.cmake)
|
include(JPEG/JPEG.cmake)
|
||||||
include(TIFF/TIFF.cmake)
|
include(TIFF/TIFF.cmake)
|
||||||
@ -188,7 +193,7 @@ include(wxWidgets/wxWidgets.cmake)
|
|||||||
set(_dep_list
|
set(_dep_list
|
||||||
dep_Boost
|
dep_Boost
|
||||||
dep_TBB
|
dep_TBB
|
||||||
dep_CURL
|
${CURL_PKG}
|
||||||
dep_wxWidgets
|
dep_wxWidgets
|
||||||
dep_Cereal
|
dep_Cereal
|
||||||
dep_NLopt
|
dep_NLopt
|
||||||
|
14
deps/CURL/CURL.cmake
vendored
14
deps/CURL/CURL.cmake
vendored
@ -48,11 +48,13 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
|||||||
)
|
)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
if (BUILD_SHARED_LIBS)
|
set(_patch_command "")
|
||||||
set(_curl_static OFF)
|
if (UNIX AND NOT APPLE)
|
||||||
else()
|
# On non-apple UNIX platforms, finding the location of OpenSSL certificates is necessary at runtime, as there is no standard location usable across platforms.
|
||||||
set(_curl_static ON)
|
# The OPENSSL_CERT_OVERRIDE flag is understood by PrusaSlicer and will trigger the search of certificates at initial application launch.
|
||||||
endif()
|
# Then ask the user for consent about the correctness of the found location.
|
||||||
|
set (_patch_command echo set_target_properties(CURL::libcurl PROPERTIES INTERFACE_COMPILE_DEFINITIONS OPENSSL_CERT_OVERRIDE) >> CMake/curl-config.cmake.in)
|
||||||
|
endif ()
|
||||||
|
|
||||||
prusaslicer_add_cmake_project(CURL
|
prusaslicer_add_cmake_project(CURL
|
||||||
# GIT_REPOSITORY https://github.com/curl/curl.git
|
# GIT_REPOSITORY https://github.com/curl/curl.git
|
||||||
@ -62,10 +64,10 @@ prusaslicer_add_cmake_project(CURL
|
|||||||
DEPENDS ${ZLIB_PKG}
|
DEPENDS ${ZLIB_PKG}
|
||||||
# PATCH_COMMAND ${GIT_EXECUTABLE} checkout -f -- . && git clean -df &&
|
# PATCH_COMMAND ${GIT_EXECUTABLE} checkout -f -- . && git clean -df &&
|
||||||
# ${GIT_EXECUTABLE} apply --whitespace=fix ${CMAKE_CURRENT_LIST_DIR}/curl-mods.patch
|
# ${GIT_EXECUTABLE} apply --whitespace=fix ${CMAKE_CURRENT_LIST_DIR}/curl-mods.patch
|
||||||
|
PATCH_COMMAND "${_patch_command}"
|
||||||
CMAKE_ARGS
|
CMAKE_ARGS
|
||||||
-DBUILD_TESTING:BOOL=OFF
|
-DBUILD_TESTING:BOOL=OFF
|
||||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
|
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
|
||||||
-DCURL_STATICLIB=${_curl_static}
|
|
||||||
${_curl_platform_flags}
|
${_curl_platform_flags}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
5
deps/deps-macos.cmake
vendored
5
deps/deps-macos.cmake
vendored
@ -15,6 +15,11 @@ set(DEP_CMAKE_OPTS
|
|||||||
|
|
||||||
include("deps-unix-common.cmake")
|
include("deps-unix-common.cmake")
|
||||||
|
|
||||||
|
find_package(CURL QUIET)
|
||||||
|
if (NOT CURL_FOUND)
|
||||||
|
message(WARNING "No CURL dev package found in system, building static library. Mac SDK should include CURL from at least version 10.12. Check your SDK installation.")
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
|
||||||
# ExternalProject_Add(dep_boost
|
# ExternalProject_Add(dep_boost
|
||||||
# EXCLUDE_FROM_ALL 1
|
# EXCLUDE_FROM_ALL 1
|
||||||
|
@ -288,10 +288,6 @@ if (SLIC3R_STATIC)
|
|||||||
target_compile_definitions(libslic3r_gui PUBLIC -DwxDEBUG_LEVEL=0)
|
target_compile_definitions(libslic3r_gui PUBLIC -DwxDEBUG_LEVEL=0)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (SLIC3R_STATIC AND NOT SLIC3R_STATIC_EXCLUDE_CURL AND UNIX AND NOT APPLE)
|
|
||||||
target_compile_definitions(libslic3r_gui PRIVATE OPENSSL_CERT_OVERRIDE)
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
if (SLIC3R_PCH AND NOT SLIC3R_SYNTAXONLY)
|
if (SLIC3R_PCH AND NOT SLIC3R_SYNTAXONLY)
|
||||||
add_precompiled_header(libslic3r_gui pchheader.hpp FORCEINCLUDE)
|
add_precompiled_header(libslic3r_gui pchheader.hpp FORCEINCLUDE)
|
||||||
endif ()
|
endif ()
|
||||||
|
Loading…
Reference in New Issue
Block a user