VirtualBox

source: vbox/trunk/src/libs/curl-7.64.0/lib/CMakeLists.txt@ 86011

Last change on this file since 86011 was 85671, checked in by vboxsync, 4 years ago

Export out internal curl copy to make it a lot simpler to build VBox (OSE) on Windows. bugref:9814

  • Property svn:eol-style set to native
File size: 3.2 KB
Line 
1set(LIB_NAME libcurl)
2
3if(BUILD_SHARED_LIBS)
4 set(CURL_STATICLIB NO)
5else()
6 set(CURL_STATICLIB YES)
7endif()
8
9# Use:
10# * CURL_STATICLIB
11configure_file(curl_config.h.cmake
12 ${CMAKE_CURRENT_BINARY_DIR}/curl_config.h)
13
14transform_makefile_inc("Makefile.inc" "${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")
15include(${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake)
16
17list(APPEND HHEADERS
18 ${CMAKE_CURRENT_BINARY_DIR}/curl_config.h
19 )
20
21if(MSVC)
22 list(APPEND CSOURCES libcurl.rc)
23 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4127")
24endif()
25
26# SET(CSOURCES
27# # memdebug.c -not used
28# # nwlib.c - Not used
29# # strtok.c - specify later
30# # strtoofft.c - specify later
31# )
32
33# # if we have Kerberos 4, right now this is never on
34# #OPTION(CURL_KRB4 "Use Kerberos 4" OFF)
35# IF(CURL_KRB4)
36# SET(CSOURCES ${CSOURCES}
37# krb4.c
38# security.c
39# )
40# ENDIF(CURL_KRB4)
41
42# #OPTION(CURL_MALLOC_DEBUG "Debug mallocs in Curl" OFF)
43# MARK_AS_ADVANCED(CURL_MALLOC_DEBUG)
44# IF(CURL_MALLOC_DEBUG)
45# SET(CSOURCES ${CSOURCES}
46# memdebug.c
47# )
48# ENDIF(CURL_MALLOC_DEBUG)
49
50# # only build compat strtoofft if we need to
51# IF(NOT HAVE_STRTOLL AND NOT HAVE__STRTOI64)
52# SET(CSOURCES ${CSOURCES}
53# strtoofft.c
54# )
55# ENDIF(NOT HAVE_STRTOLL AND NOT HAVE__STRTOI64)
56
57
58# The rest of the build
59
60include_directories(${CMAKE_CURRENT_BINARY_DIR}/../include)
61include_directories(${CMAKE_CURRENT_SOURCE_DIR}/..)
62include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../include)
63include_directories(${CMAKE_CURRENT_BINARY_DIR}/..)
64include_directories(${CMAKE_CURRENT_SOURCE_DIR})
65include_directories(${CMAKE_CURRENT_BINARY_DIR})
66if(USE_ARES)
67 include_directories(${CARES_INCLUDE_DIR})
68endif()
69
70add_library(
71 ${LIB_NAME}
72 ${HHEADERS} ${CSOURCES}
73 )
74
75if(MSVC AND NOT BUILD_SHARED_LIBS)
76 set_target_properties(${LIB_NAME} PROPERTIES STATIC_LIBRARY_FLAGS ${CMAKE_EXE_LINKER_FLAGS})
77endif()
78
79if(NOT BUILD_SHARED_LIBS)
80 set_target_properties(${LIB_NAME} PROPERTIES INTERFACE_COMPILE_DEFINITIONS CURL_STATICLIB)
81endif()
82
83target_link_libraries(${LIB_NAME} ${CURL_LIBS})
84
85if(WIN32)
86 add_definitions(-D_USRDLL)
87endif()
88
89set_target_properties(${LIB_NAME} PROPERTIES COMPILE_DEFINITIONS BUILDING_LIBCURL)
90
91if(HIDES_CURL_PRIVATE_SYMBOLS)
92 set_property(TARGET ${LIB_NAME} APPEND PROPERTY COMPILE_DEFINITIONS "CURL_HIDDEN_SYMBOLS")
93 set_property(TARGET ${LIB_NAME} APPEND PROPERTY COMPILE_FLAGS ${CURL_CFLAG_SYMBOLS_HIDE})
94endif()
95
96# Remove the "lib" prefix since the library is already named "libcurl".
97set_target_properties(${LIB_NAME} PROPERTIES PREFIX "")
98set_target_properties(${LIB_NAME} PROPERTIES IMPORT_PREFIX "")
99
100if(WIN32)
101 if(BUILD_SHARED_LIBS)
102 # Add "_imp" as a suffix before the extension to avoid conflicting with the statically linked "libcurl.lib"
103 set_target_properties(${LIB_NAME} PROPERTIES IMPORT_SUFFIX "_imp.lib")
104 endif()
105endif()
106
107target_include_directories(${LIB_NAME} INTERFACE
108 $<INSTALL_INTERFACE:include>
109 $<BUILD_INTERFACE:${CURL_SOURCE_DIR}/include>)
110
111install(TARGETS ${LIB_NAME}
112 EXPORT ${TARGETS_EXPORT_NAME}
113 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
114 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
115 RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
116)
117
118export(TARGETS ${LIB_NAME}
119 APPEND FILE ${PROJECT_BINARY_DIR}/libcurl-target.cmake
120 NAMESPACE CURL::
121)
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette