@@ -31,10 +31,12 @@ find_package(Git)
31
31
# NDK_DIR - directory where the android NDK is installed; if not set, the location will be read from the ANDROID_NDK environment variable
32
32
33
33
# Settings to pull in an external, non-system install of Curl
34
+ # On platforms that by default build these libraries (Android), you must define these for both Curl and Openssl; partial building isn't supported
34
35
# CURL_INCLUDE_DIR "Location of curl header files" "")
35
36
# CURL_LIB_DIR "Location of curl library files" "")
36
37
37
38
# Settings to pull in an external, non-system install of Openssl
39
+ # On platforms that by default build these libraries (Android), you must define these for both Curl and Openssl; partial building isn't supported
38
40
# OPENSSL_INCLUDE_DIR "Location of openssl header files" "")
39
41
# OPENSSL_LIB_DIR "Location of openssl library files" "")
40
42
@@ -132,6 +134,14 @@ elseif(PLATFORM_ANDROID)
132
134
set (ANDROID_TOOLCHAIN_NAME "standalone-clang" )
133
135
endif ()
134
136
137
+ if (NOT ANDROID_STL)
138
+ if (FORCE_SHARED_CRT OR BUILD_SHARED_LIBS )
139
+ SET (ANDROID_STL "libc++_shared" )
140
+ else ()
141
+ SET (ANDROID_STL "libc++_static" )
142
+ endif ()
143
+ endif ()
144
+
135
145
# minimum API level the native SDK will work against
136
146
if (NOT ANDROID_NATIVE_API_LEVEL)
137
147
set (ANDROID_NATIVE_API_LEVEL "android-21" )
@@ -242,19 +252,11 @@ endmacro()
242
252
243
253
set_msvc_crt_settings()
244
254
245
- if (PLATFORM_ANDROID)
246
- if (FORCE_SHARED_CRT OR BUILD_SHARED_LIBS )
247
- SET (ANDROID_STL "libc++_shared" )
248
- else ()
249
- SET (ANDROID_STL "libc++_static" )
250
- endif ()
251
- endif ()
252
-
253
255
254
256
255
257
# Http client control
256
258
# After this section runs, client availability is technically platform-independent (ie we use the client #defines rather than a mess of platform #defines)
257
- # on Windows, set CURL_DIR to a valid curl install directory in order to enable the curl client
259
+ # On Windows, set CURL_INCLUDE_DIR and CURL_LIB_DIR appropriately in order to enable the curl client
258
260
set (ENABLE_CURL_CLIENT 0)
259
261
set (ENABLE_WINDOWS_CLIENT 0)
260
262
if (NOT NO_HTTP_CLIENT)
@@ -275,13 +277,15 @@ if(NOT NO_HTTP_CLIENT)
275
277
endif ()
276
278
277
279
if (NOT EXISTS "${CURL_INCLUDE_DIR} /curl/curl.h" )
278
- message (FATAL_ERROR "Curl header location (${CURL_INCLUDE_DIR} ) is invalid" )
280
+ message (FATAL_ERROR "Curl header location (${CURL_INCLUDE_DIR} ) is an invalid curl installation " )
279
281
endif ()
280
282
281
283
if (NOT IS_DIRECTORY "${CURL_LIB_DIR} " )
282
284
message (FATAL_ERROR "Curl library location (${CURL_LIB_DIR} ) is not a valid directory" )
283
285
endif ()
284
286
287
+ #TODO: platform-specific lib check
288
+
285
289
elseif (PLATFORM_ANDROID)
286
290
set (BUILD_CURL 1)
287
291
endif ()
@@ -327,13 +331,15 @@ if(NOT NO_ENCRYPTION)
327
331
endif ()
328
332
329
333
if (NOT EXISTS "${OPENSSL_INCLUDE_DIR} /openssl/opensslconf.h" )
330
- message (FATAL_ERROR "Openssl header location (${OPENSSL_INCLUDE_DIR} ) is invalid" )
334
+ message (FATAL_ERROR "Openssl header location (${OPENSSL_INCLUDE_DIR} ) is an invalid openssl installation " )
331
335
endif ()
332
336
333
337
if (NOT IS_DIRECTORY "${OPENSSL_LIB_DIR} " )
334
338
message (FATAL_ERROR "Openssl library location (${OPENSSL_LIB_DIR} ) is not a valid directory" )
335
339
endif ()
336
340
341
+ #TODO: platform-specific lib existence check
342
+
337
343
elseif (PLATFORM_ANDROID)
338
344
set (BUILD_OPENSSL 1)
339
345
endif ()
@@ -379,6 +385,11 @@ endif()
379
385
380
386
message (STATUS "Install binary prefix: ${SDK_INSTALL_BINARY_PREFIX} " )
381
387
388
+ if ((BUILD_CURL AND NOT BUILD_OPENSSL) OR (NOT BUILD_CURL AND BUILD_OPENSSL))
389
+ message (FATAL_ERROR "Inconsistent external library import settings for a platform that requires both curl and openssl. \
390
+ Curl and Openssl must both either be external imports or internally built as part of the SDK." )
391
+ endif ()
392
+
382
393
if (ENABLE_OPENSSL_ENCRYPTION AND OPENSSL_INCLUDE_DIR AND OPENSSL_LIB_DIR)
383
394
include_directories (${OPENSSL_INCLUDE_DIR} )
384
395
link_directories (${OPENSSL_LIB_DIR} )
@@ -767,138 +778,131 @@ if(BUILD_CURL OR BUILD_OPENSSL)
767
778
# we patch the install process for each dependency to match what we need for 3rd party installation
768
779
set (EXTERNAL_INSTALL_DIR ${CMAKE_SOURCE_DIR} /external)
769
780
770
- if (BUILD_ZLIB)
771
- set (ZLIB_SOURCE_DIR ${CMAKE_SOURCE_DIR} /zlib CACHE INTERNAL "zlib source dir" )
772
- set (ZLIB_INSTALL_DIR ${EXTERNAL_INSTALL_DIR} /zlib CACHE INTERNAL "zlib install dir" )
773
- set (ZLIB_INCLUDE_DIR ${ZLIB_INSTALL_DIR} /include /zlib CACHE INTERNAL "zlib include dir" )
774
- set (ZLIB_LIBRARY_DIR ${ZLIB_INSTALL_DIR} /lib/${SDK_INSTALL_BINARY_PREFIX} /${CMAKE_BUILD_TYPE} CACHE INTERNAL "zlib library dir" )
775
- #set(ZLIB_DEFINES "-msse2 -mfpmath=sse" CACHE INTERNAL "zlib defines")
776
-
777
- set ( ZLIB_INCLUDE_FLAGS "-isystem ${ZLIB_INCLUDE_DIR} " CACHE INTERNAL "compiler flags to find zlib includes" )
778
- set ( ZLIB_LINKER_FLAGS "-L${ZLIB_LIBRARY_DIR} " CACHE INTERNAL "linker flags to find zlib" )
779
-
780
- #zlib
781
- #based on http://stackoverflow.com/questions/16842218/how-to-use-cmake-externalproject-add-or-alternatives-in-a-cross-platform-way
782
- #likely, some of the things here are unnecessary
783
- ExternalProject_Add(ZLIB
784
- SOURCE_DIR ${ZLIB_SOURCE_DIR}
785
- URL http://zlib.net/zlib-1.2.8.tar.gz
786
- URL_HASH "SHA256=36658cb768a54c1d4dec43c3116c27ed893e88b02ecfcb44f2166f9c0b7f2a0d"
787
- PATCH_COMMAND patch CMakeLists.txt < ${CMAKE_SOURCE_DIR} /android-build /patches/zlib/CMakeLists.patch
788
- CMAKE_ARGS
789
- -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
790
- -DANDROID_NATIVE_API_LEVEL=${ANDROID_NATIVE_API_LEVEL}
791
- -DANDROID_ABI=${ANDROID_ABI}
792
- -DANDROID_TOOLCHAIN_NAME=${ANDROID_TOOLCHAIN_NAME}
793
- -DANDROID_STANDALONE_TOOLCHAIN=${ANDROID_STANDALONE_TOOLCHAIN}
794
- -DANDROID_STL=${ANDROID_STL}
795
- -DCMAKE_INSTALL_PREFIX=${ZLIB_INSTALL_DIR}
796
- -DCMAKE_CXX_FLAGS=${EXTERNAL_CXX_FLAGS}
797
- -DCMAKE_C_FLAGS=${EXTERNAL_C_FLAGS}
798
- -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
799
- -DSDK_INSTALL_BINARY_PREFIX=${SDK_INSTALL_BINARY_PREFIX}
800
- -DBUILD_SHARED_LIBS=0
801
- )
802
-
803
- if (UNIX )
804
- set (ZLIB_NAME libz)
805
- else ()
806
- set (ZLIB_NAME zlib)
807
- endif ()
781
+ set (ZLIB_SOURCE_DIR ${CMAKE_SOURCE_DIR} /zlib CACHE INTERNAL "zlib source dir" )
782
+ set (ZLIB_INSTALL_DIR ${EXTERNAL_INSTALL_DIR} /zlib CACHE INTERNAL "zlib install dir" )
783
+ set (ZLIB_INCLUDE_DIR ${ZLIB_INSTALL_DIR} /include /zlib CACHE INTERNAL "zlib include dir" )
784
+ set (ZLIB_LIBRARY_DIR ${ZLIB_INSTALL_DIR} /lib/${SDK_INSTALL_BINARY_PREFIX} /${CMAKE_BUILD_TYPE} CACHE INTERNAL "zlib library dir" )
785
+ #set(ZLIB_DEFINES "-msse2 -mfpmath=sse" CACHE INTERNAL "zlib defines")
786
+
787
+ set ( ZLIB_INCLUDE_FLAGS "-isystem ${ZLIB_INCLUDE_DIR} " CACHE INTERNAL "compiler flags to find zlib includes" )
788
+ set ( ZLIB_LINKER_FLAGS "-L${ZLIB_LIBRARY_DIR} " CACHE INTERNAL "linker flags to find zlib" )
789
+
790
+ #zlib
791
+ #based on http://stackoverflow.com/questions/16842218/how-to-use-cmake-externalproject-add-or-alternatives-in-a-cross-platform-way
792
+ #likely, some of the things here are unnecessary
793
+ ExternalProject_Add(ZLIB
794
+ SOURCE_DIR ${ZLIB_SOURCE_DIR}
795
+ URL http://zlib.net/zlib-1.2.8.tar.gz
796
+ URL_HASH "SHA256=36658cb768a54c1d4dec43c3116c27ed893e88b02ecfcb44f2166f9c0b7f2a0d"
797
+ PATCH_COMMAND patch CMakeLists.txt < ${CMAKE_SOURCE_DIR} /android-build /patches/zlib/CMakeLists.patch
798
+ CMAKE_ARGS
799
+ -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
800
+ -DANDROID_NATIVE_API_LEVEL=${ANDROID_NATIVE_API_LEVEL}
801
+ -DANDROID_ABI=${ANDROID_ABI}
802
+ -DANDROID_TOOLCHAIN_NAME=${ANDROID_TOOLCHAIN_NAME}
803
+ -DANDROID_STANDALONE_TOOLCHAIN=${ANDROID_STANDALONE_TOOLCHAIN}
804
+ -DANDROID_STL=${ANDROID_STL}
805
+ -DCMAKE_INSTALL_PREFIX=${ZLIB_INSTALL_DIR}
806
+ -DCMAKE_CXX_FLAGS=${EXTERNAL_CXX_FLAGS}
807
+ -DCMAKE_C_FLAGS=${EXTERNAL_C_FLAGS}
808
+ -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
809
+ -DSDK_INSTALL_BINARY_PREFIX=${SDK_INSTALL_BINARY_PREFIX}
810
+ -DBUILD_SHARED_LIBS=0
811
+ )
808
812
809
- add_library (zlib UNKNOWN IMPORTED )
810
- set_property (TARGET zlib PROPERTY IMPORTED_LOCATION ${ZLIB_LIBRARY_DIR} /${ZLIB_NAME} .a)
813
+ if (UNIX )
814
+ set (ZLIB_NAME libz)
815
+ else ()
816
+ set (ZLIB_NAME zlib)
811
817
endif ()
812
818
813
- if (BUILD_OPENSSL)
814
- #OpenSSL
815
- set (OPENSSL_SOURCE_DIR ${CMAKE_SOURCE_DIR} /openssl CACHE INTERNAL "openssl source dir" )
816
- set (OPENSSL_INSTALL_DIR ${EXTERNAL_INSTALL_DIR} /openssl CACHE INTERNAL "openssl install dir" )
817
- set (OPENSSL_INCLUDE_DIR ${OPENSSL_INSTALL_DIR} /include CACHE INTERNAL "openssl include dir" )
818
- set (OPENSSL_LIBRARY_DIR ${OPENSSL_INSTALL_DIR} /lib/${SDK_INSTALL_BINARY_PREFIX} /${CMAKE_BUILD_TYPE} CACHE INTERNAL "openssl library dir" )
819
- set (OPENSSL_CXX_FLAGS "${EXTERNAL_CXX_FLAGS} ${ZLIB_INCLUDE_FLAGS} -fPIE" CACHE INTERNAL "openssl" )
820
- set (OPENSSL_C_FLAGS "${EXTERNAL_C_FLAGS} ${ZLIB_INCLUDE_FLAGS} -fPIE" CACHE INTERNAL "openssl" )
821
- set (OPENSSL_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fPIE -pie" CACHE INTERNAL "openssl" )
822
-
823
- set (OPENSSL_INCLUDE_FLAGS "-isystem ${OPENSSL_INCLUDE_DIR} -isystem ${OPENSSL_INCLUDE_DIR} /openssl" CACHE INTERNAL "compiler flags to find openssl includes" )
824
- set (OPENSSL_LINKER_FLAGS "-L${OPENSSL_LIBRARY_DIR} " CACHE INTERNAL "linker flags to find openssl" )
825
-
826
- ExternalProject_Add(OPENSSL
827
- DEPENDS ZLIB
828
- SOURCE_DIR ${OPENSSL_SOURCE_DIR}
829
- GIT_REPOSITORY https://github.com/openssl/openssl.git
830
- GIT_TAG 902f3f50d051dfd6ebf009d352aaf581195caabf # 1.0.2g
831
- UPDATE_COMMAND cd ${CMAKE_SOURCE_DIR} && python android-build /configure_openssl_cmake.py
819
+ add_library (zlib UNKNOWN IMPORTED )
820
+ set_property (TARGET zlib PROPERTY IMPORTED_LOCATION ${ZLIB_LIBRARY_DIR} /${ZLIB_NAME} .a)
821
+
822
+ #OpenSSL
823
+ set (OPENSSL_SOURCE_DIR ${CMAKE_SOURCE_DIR} /openssl CACHE INTERNAL "openssl source dir" )
824
+ set (OPENSSL_INSTALL_DIR ${EXTERNAL_INSTALL_DIR} /openssl CACHE INTERNAL "openssl install dir" )
825
+ set (OPENSSL_INCLUDE_DIR ${OPENSSL_INSTALL_DIR} /include CACHE INTERNAL "openssl include dir" )
826
+ set (OPENSSL_LIBRARY_DIR ${OPENSSL_INSTALL_DIR} /lib/${SDK_INSTALL_BINARY_PREFIX} /${CMAKE_BUILD_TYPE} CACHE INTERNAL "openssl library dir" )
827
+ set (OPENSSL_CXX_FLAGS "${EXTERNAL_CXX_FLAGS} ${ZLIB_INCLUDE_FLAGS} -fPIE" CACHE INTERNAL "openssl" )
828
+ set (OPENSSL_C_FLAGS "${EXTERNAL_C_FLAGS} ${ZLIB_INCLUDE_FLAGS} -fPIE" CACHE INTERNAL "openssl" )
829
+ set (OPENSSL_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fPIE -pie" CACHE INTERNAL "openssl" )
830
+
831
+ set (OPENSSL_INCLUDE_FLAGS "-isystem ${OPENSSL_INCLUDE_DIR} -isystem ${OPENSSL_INCLUDE_DIR} /openssl" CACHE INTERNAL "compiler flags to find openssl includes" )
832
+ set (OPENSSL_LINKER_FLAGS "-L${OPENSSL_LIBRARY_DIR} " CACHE INTERNAL "linker flags to find openssl" )
833
+
834
+ ExternalProject_Add(OPENSSL
835
+ DEPENDS ZLIB
836
+ SOURCE_DIR ${OPENSSL_SOURCE_DIR}
837
+ GIT_REPOSITORY https://github.com/openssl/openssl.git
838
+ GIT_TAG 902f3f50d051dfd6ebf009d352aaf581195caabf # 1.0.2g
839
+ UPDATE_COMMAND cd ${CMAKE_SOURCE_DIR} && python android-build /configure_openssl_cmake.py
840
+ CMAKE_ARGS
841
+ -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
842
+ -DANDROID_NATIVE_API_LEVEL=${ANDROID_NATIVE_API_LEVEL}
843
+ -DANDROID_ABI=${ANDROID_ABI}
844
+ -DANDROID_TOOLCHAIN_NAME=${ANDROID_TOOLCHAIN_NAME}
845
+ -DANDROID_STANDALONE_TOOLCHAIN=${ANDROID_STANDALONE_TOOLCHAIN}
846
+ -DANDROID_STL=${ANDROID_STL}
847
+ -DCMAKE_INSTALL_PREFIX=${OPENSSL_INSTALL_DIR}
848
+ -DCMAKE_CXX_FLAGS=${OPENSSL_CXX_FLAGS}
849
+ -DCMAKE_C_FLAGS=${OPENSSL_C_FLAGS}
850
+ -DCMAKE_EXE_LINKER_FLAGS=${OPENSSL_EXE_LINKER_FLAGS}
851
+ -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
852
+ -DSDK_INSTALL_BINARY_PREFIX=${SDK_INSTALL_BINARY_PREFIX}
853
+ -DBUILD_SHARED_LIBS=0
854
+ )
855
+
856
+ add_library (ssl UNKNOWN IMPORTED )
857
+ set_property (TARGET ssl PROPERTY IMPORTED_LOCATION ${OPENSSL_LIBRARY_DIR} /libssl.a)
858
+ add_library (crypto UNKNOWN IMPORTED )
859
+ set_property (TARGET crypto PROPERTY IMPORTED_LOCATION ${OPENSSL_LIBRARY_DIR} /libcrypto.a)
860
+
861
+ #curl
862
+ set (CURL_SOURCE_DIR ${CMAKE_SOURCE_DIR} /curl CACHE INTERNAL "libcurl source dir" )
863
+ set (CURL_INSTALL_DIR ${EXTERNAL_INSTALL_DIR} /curl CACHE INTERNAL "libcurl install dir" )
864
+ set (CURL_INCLUDE_DIR ${CURL_INSTALL_DIR} /include CACHE INTERNAL "libcurl include dir" )
865
+ set (CURL_LIBRARY_DIR ${CURL_INSTALL_DIR} /lib/${SDK_INSTALL_BINARY_PREFIX} /${CMAKE_BUILD_TYPE} CACHE INTERNAL "libcurl library dir" )
866
+
867
+ set ( CURL_STATIC_LINKER_FLAGS "${CMAKE_STATIC_LINKER_FLAGS} " CACHE INTERNAL "" )
868
+ set ( CURL_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} " CACHE INTERNAL "" )
869
+
870
+ set ( CURL_CXX_FLAGS "${EXTERNAL_CXX_FLAGS} ${OPENSSL_INCLUDE_FLAGS} ${ZLIB_INCLUDE_FLAGS} -Wno-unused-value -fPIE ${ZLIB_LINKER_FLAGS} ${OPENSSL_LINKER_FLAGS} " CACHE INTERNAL "" )
871
+ set ( CURL_C_FLAGS "${EXTERNAL_C_FLAGS} ${OPENSSL_INCLUDE_FLAGS} ${ZLIB_INCLUDE_FLAGS} -Wno-unused-value -fPIE ${ZLIB_LINKER_FLAGS} ${OPENSSL_LINKER_FLAGS} " CACHE INTERNAL "" )
872
+ set ( CURL_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fPIE -pie ${ZLIB_LINKER_FLAGS} ${OPENSSL_LINKER_FLAGS} " CACHE INTERNAL "" )
873
+
874
+ ExternalProject_Add(CURL
875
+ DEPENDS ZLIB OPENSSL
876
+ SOURCE_DIR ${CURL_SOURCE_DIR}
877
+ GIT_REPOSITORY https://github.com/bagder/curl.git
878
+ GIT_TAG 9819cec61b00cc872136ea5faf469627b3b87e69 # 7.48.0
879
+ UPDATE_COMMAND ""
880
+ PATCH_COMMAND patch lib/CMakeLists.txt < ${CMAKE_SOURCE_DIR} /android-build /patches/curl/lib/CMakeLists.patch && patch src/CMakeLists.txt < ${CMAKE_SOURCE_DIR} /android-build /patches/curl/src/CMakeLists.patch
832
881
CMAKE_ARGS
882
+ -C ${CMAKE_SOURCE_DIR} /android-build /CurlAndroidCrossCompile.cmake
833
883
-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
834
884
-DANDROID_NATIVE_API_LEVEL=${ANDROID_NATIVE_API_LEVEL}
835
885
-DANDROID_ABI=${ANDROID_ABI}
836
886
-DANDROID_TOOLCHAIN_NAME=${ANDROID_TOOLCHAIN_NAME}
837
887
-DANDROID_STANDALONE_TOOLCHAIN=${ANDROID_STANDALONE_TOOLCHAIN}
838
888
-DANDROID_STL=${ANDROID_STL}
839
- -DCMAKE_INSTALL_PREFIX=${OPENSSL_INSTALL_DIR}
840
- -DCMAKE_CXX_FLAGS=${OPENSSL_CXX_FLAGS}
841
- -DCMAKE_C_FLAGS=${OPENSSL_C_FLAGS}
842
- -DCMAKE_EXE_LINKER_FLAGS=${OPENSSL_EXE_LINKER_FLAGS}
889
+ -DCMAKE_INSTALL_PREFIX=${CURL_INSTALL_DIR}
890
+ -DCMAKE_CXX_FLAGS=${CURL_CXX_FLAGS}
891
+ -DCMAKE_C_FLAGS=${CURL_C_FLAGS}
892
+ -DCMAKE_STATIC_LINKER_FLAGS=${CURL_STATIC_LINKER_FLAGS}
893
+ -DCMAKE_SHARED_LINKER_FLAGS=${CURL_SHARED_LINKER_FLAGS}
894
+ -DCMAKE_EXE_LINKER_FLAGS=${CURL_EXE_LINKER_FLAGS}
843
895
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
896
+ -DOPENSSL_ROOT_DIR=${OPENSSL_SOURCE_DIR}
897
+ -DOPENSSL_INCLUDE_DIR=${OPENSSL_INCLUDE_DIR}
898
+ -DCURL_STATICLIB=ON
899
+ -DBUILD_CURL_EXE=ON
900
+ -DBUILD_CURL_TESTS=OFF
844
901
-DSDK_INSTALL_BINARY_PREFIX=${SDK_INSTALL_BINARY_PREFIX}
845
- -DBUILD_SHARED_LIBS=0
846
902
)
847
903
848
- add_library (ssl UNKNOWN IMPORTED )
849
- set_property (TARGET ssl PROPERTY IMPORTED_LOCATION ${OPENSSL_LIBRARY_DIR} /libssl.a)
850
- add_library (crypto UNKNOWN IMPORTED )
851
- set_property (TARGET crypto PROPERTY IMPORTED_LOCATION ${OPENSSL_LIBRARY_DIR} /libcrypto.a)
852
- # set(CURL_DEPENDS "ZLIB OPENSSL")
853
- endif ()
854
-
855
- if (BUILD_CURL)
856
- #curl
857
- set (CURL_SOURCE_DIR ${CMAKE_SOURCE_DIR} /curl CACHE INTERNAL "libcurl source dir" )
858
- set (CURL_INSTALL_DIR ${EXTERNAL_INSTALL_DIR} /curl CACHE INTERNAL "libcurl install dir" )
859
- set (CURL_INCLUDE_DIR ${CURL_INSTALL_DIR} /include CACHE INTERNAL "libcurl include dir" )
860
- set (CURL_LIBRARY_DIR ${CURL_INSTALL_DIR} /lib/${SDK_INSTALL_BINARY_PREFIX} /${CMAKE_BUILD_TYPE} CACHE INTERNAL "libcurl library dir" )
861
-
862
- set ( CURL_STATIC_LINKER_FLAGS "${CMAKE_STATIC_LINKER_FLAGS} " CACHE INTERNAL "" )
863
- set ( CURL_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} " CACHE INTERNAL "" )
864
-
865
- set ( CURL_CXX_FLAGS "${EXTERNAL_CXX_FLAGS} ${OPENSSL_INCLUDE_FLAGS} ${ZLIB_INCLUDE_FLAGS} -Wno-unused-value -fPIE ${ZLIB_LINKER_FLAGS} ${OPENSSL_LINKER_FLAGS} " CACHE INTERNAL "" )
866
- set ( CURL_C_FLAGS "${EXTERNAL_C_FLAGS} ${OPENSSL_INCLUDE_FLAGS} ${ZLIB_INCLUDE_FLAGS} -Wno-unused-value -fPIE ${ZLIB_LINKER_FLAGS} ${OPENSSL_LINKER_FLAGS} " CACHE INTERNAL "" )
867
- set ( CURL_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fPIE -pie ${ZLIB_LINKER_FLAGS} ${OPENSSL_LINKER_FLAGS} " CACHE INTERNAL "" )
868
-
869
- ExternalProject_Add(CURL
870
- # DEPENDS ${CURL_DEPENDS}
871
- SOURCE_DIR ${CURL_SOURCE_DIR}
872
- GIT_REPOSITORY https://github.com/bagder/curl.git
873
- GIT_TAG 9819cec61b00cc872136ea5faf469627b3b87e69 # 7.48.0
874
- UPDATE_COMMAND ""
875
- PATCH_COMMAND patch lib/CMakeLists.txt < ${CMAKE_SOURCE_DIR} /android-build /patches/curl/lib/CMakeLists.patch && patch src/CMakeLists.txt < ${CMAKE_SOURCE_DIR} /android-build /patches/curl/src/CMakeLists.patch
876
- CMAKE_ARGS
877
- -C ${CMAKE_SOURCE_DIR} /android-build /CurlAndroidCrossCompile.cmake
878
- -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
879
- -DANDROID_NATIVE_API_LEVEL=${ANDROID_NATIVE_API_LEVEL}
880
- -DANDROID_ABI=${ANDROID_ABI}
881
- -DANDROID_TOOLCHAIN_NAME=${ANDROID_TOOLCHAIN_NAME}
882
- -DANDROID_STANDALONE_TOOLCHAIN=${ANDROID_STANDALONE_TOOLCHAIN}
883
- -DANDROID_STL=${ANDROID_STL}
884
- -DCMAKE_INSTALL_PREFIX=${CURL_INSTALL_DIR}
885
- -DCMAKE_CXX_FLAGS=${CURL_CXX_FLAGS}
886
- -DCMAKE_C_FLAGS=${CURL_C_FLAGS}
887
- -DCMAKE_STATIC_LINKER_FLAGS=${CURL_STATIC_LINKER_FLAGS}
888
- -DCMAKE_SHARED_LINKER_FLAGS=${CURL_SHARED_LINKER_FLAGS}
889
- -DCMAKE_EXE_LINKER_FLAGS=${CURL_EXE_LINKER_FLAGS}
890
- -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
891
- -DOPENSSL_ROOT_DIR=${OPENSSL_SOURCE_DIR}
892
- -DOPENSSL_INCLUDE_DIR=${OPENSSL_INCLUDE_DIR}
893
- -DCURL_STATICLIB=ON
894
- -DBUILD_CURL_EXE=ON
895
- -DBUILD_CURL_TESTS=OFF
896
- -DSDK_INSTALL_BINARY_PREFIX=${SDK_INSTALL_BINARY_PREFIX}
897
- )
898
-
899
- add_library (curl UNKNOWN IMPORTED )
900
- set_property (TARGET curl PROPERTY IMPORTED_LOCATION ${CURL_LIBRARY_DIR} /libcurl.a)
901
- endif ()
904
+ add_library (curl UNKNOWN IMPORTED )
905
+ set_property (TARGET curl PROPERTY IMPORTED_LOCATION ${CURL_LIBRARY_DIR} /libcurl.a)
902
906
endif ()
903
907
904
908
# special windows build options:
0 commit comments