Made the CMake scripts read Makefile.inc. Needs testing I guess.
[platform/upstream/curl.git] / lib / CMakeLists.txt
1 SET(LIB_NAME libcurl)
2
3 CONFIGURE_FILE(${CURL_SOURCE_DIR}/include/curl/curlbuild.h.cmake
4   ${CURL_BINARY_DIR}/include/curl/curlbuild.h)
5 CONFIGURE_FILE(config.h.cmake
6   ${CMAKE_CURRENT_BINARY_DIR}/config.h)
7
8
9 TRANSFORM_MAKEFILE_INC("Makefile.inc" "${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")
10 INCLUDE(${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake)
11
12 LIST(APPEND HHEADERS
13         ${CMAKE_CURRENT_BINARY_DIR}/config.h
14         ${CURL_BINARY_DIR}/include/curl/curlbuild.h
15 )
16
17 IF(MSVC)
18         LIST(APPEND CSOURCES libcurl.rc)
19 ENDIF()
20
21 # SET(CSOURCES
22   # #  memdebug.c -not used
23   # # nwlib.c - Not used
24   # # strtok.c - specify later
25   # # strtoofft.c - specify later
26 # )
27
28 # # if we have Kerberos 4, right now this is never on
29 # #OPTION(CURL_KRB4 "Use Kerberos 4" OFF)
30 # IF(CURL_KRB4)
31   # SET(CSOURCES ${CSOURCES}
32     # krb4.c
33     # security.c
34     # )
35 # ENDIF(CURL_KRB4)
36
37 # #OPTION(CURL_MALLOC_DEBUG "Debug mallocs in Curl" OFF)
38 # MARK_AS_ADVANCED(CURL_MALLOC_DEBUG)
39 # IF(CURL_MALLOC_DEBUG)
40   # SET(CSOURCES ${CSOURCES}
41     # memdebug.c
42     # )
43 # ENDIF(CURL_MALLOC_DEBUG)
44
45 # # only build compat strtoofft if we need to
46 # IF(NOT HAVE_STRTOLL AND NOT HAVE__STRTOI64)
47   # SET(CSOURCES ${CSOURCES}
48     # strtoofft.c
49     # )
50 # ENDIF(NOT HAVE_STRTOLL AND NOT HAVE__STRTOI64)
51
52 IF(HAVE_FEATURES_H)
53   SET_SOURCE_FILES_PROPERTIES(
54     cookie.c
55     easy.c
56     formdata.c
57     getenv.c
58     hash.c
59     http.c
60     if2ip.c 
61     mprintf.c
62     multi.c
63     sendf.c
64     telnet.c
65     transfer.c
66     url.c
67     COMPILE_FLAGS -D_BSD_SOURCE)
68 ENDIF(HAVE_FEATURES_H)
69
70
71 # The rest of the build
72
73 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/../include)
74 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/..)
75 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../include)
76 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/..)
77 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
78 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
79
80 IF(CURL_STATICLIB)
81         # Static lib
82         SET(CURL_USER_DEFINED_DYNAMIC_OR_STATIC STATIC)
83 ELSE()
84         # DLL / so dynamic lib
85         SET(CURL_USER_DEFINED_DYNAMIC_OR_STATIC SHARED)
86 ENDIF()
87
88 ADD_LIBRARY(
89         ${LIB_NAME}
90         ${CURL_USER_DEFINED_DYNAMIC_OR_STATIC}
91         ${HHEADERS} ${CSOURCES}
92 )
93
94 TARGET_LINK_LIBRARIES(${LIB_NAME} ${CURL_LIBS})
95
96 IF(WIN32)
97         ADD_DEFINITIONS( -D_USRDLL )
98 ENDIF()
99
100 ADD_DEFINITIONS(
101         -DBUILDING_LIBCURL
102 )
103
104 SETUP_CURL_DEPENDENCIES(${LIB_NAME})
105
106 # Remove the "lib" prefix since the library is already named "libcurl".
107 SET_TARGET_PROPERTIES(${LIB_NAME} PROPERTIES PREFIX "")
108 SET_TARGET_PROPERTIES(${LIB_NAME} PROPERTIES IMPORT_PREFIX "")
109
110 IF(MSVC)
111         IF(NOT BUILD_RELEASE_DEBUG_DIRS)
112                 # Ugly workaround to remove the "/debug" or "/release" in each output
113                 SET_TARGET_PROPERTIES(${LIB_NAME} PROPERTIES PREFIX "../")
114                 SET_TARGET_PROPERTIES(${LIB_NAME} PROPERTIES IMPORT_PREFIX "../")
115         ENDIF()
116 ENDIF()
117
118 IF(WIN32)
119         IF(NOT CURL_STATICLIB)
120                 # Add "_imp" as a suffix before the extension to avoid conflicting with the statically linked "libcurl.lib"
121                 SET_TARGET_PROPERTIES(${LIB_NAME} PROPERTIES IMPORT_SUFFIX "_imp.lib")
122         ENDIF()
123 ENDIF()