diff options
author | Benoit Neil <suky0001@free.fr> | 2009-04-06 20:44:01 +0000 |
---|---|---|
committer | Benoit Neil <suky0001@free.fr> | 2009-04-06 20:44:01 +0000 |
commit | 06047d91036130bce6fde44ee481582c1a979706 (patch) | |
tree | f37938ce4554019ac494abb5821666c77d408807 /src/CMakeLists.txt | |
parent | 2362637e9049d01138ee8d4fd4c8cafb563f693a (diff) | |
download | curl-06047d91036130bce6fde44ee481582c1a979706.tar.gz |
Added curl (exe) target, fixed static/dynamic linking errors.
PS: Sorry if the added file has executable perms on Linux, I didn't found anything related to it...
Diffstat (limited to 'src/CMakeLists.txt')
-rw-r--r-- | src/CMakeLists.txt | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 000000000..168abf422 --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,78 @@ +SET(EXE_NAME curl) + +# First try to locate hugehelp.c to see if it has already been created +# TODO Find the file WITHOUT adding a cache entry!!! Or else the user can delete the file after the script was first run, and the script won't notice it has gone. +FIND_FILE(HUGEHELP_C_FILE hugehelp.c PATHS . NO_DEFAULT_PATH) +IF (NOT HUGEHELP_C_FILE) + MESSAGE(STATUS "Warning: hugehelp.c file was not generated before. Generating an 'empty' file...") + FILE(WRITE hugehelp.c "/* built-in manual is disabled, blank function */\n#include \"hugehelp.h\"\nvoid hugehelp(void) {}") +ENDIF() + +SET(CURLX_SOURCE + ${CURL_SOURCE_DIR}/lib/strtoofft.c + ${CURL_SOURCE_DIR}/lib/strdup.c + ${CURL_SOURCE_DIR}/lib/rawstr.c +) + +SET(CURL_SOURCE + main.c hugehelp.c urlglob.c writeout.c writeenv.c + getpass.c homedir.c curlutil.c +) + +SET(CURL_HEADERS + hugehelp.h setup.h config-win32.h config-mac.h + config-riscos.h urlglob.h version.h + writeout.h writeenv.h getpass.h homedir.h curlutil.h +) + +IF(MSVC) + LIST(APPEND CURL_SOURCE curl.rc) +ENDIF() + +ADD_EXECUTABLE( + ${EXE_NAME} + ${CURL_HEADERS} + ${CURL_SOURCE} ${CURLX_SOURCE} +) + +SOURCE_GROUP("cURLX source files" FILES ${CURLX_SOURCE}) +SOURCE_GROUP("cURL source files" FILES ${CURL_SOURCE}) +SOURCE_GROUP("cURL header files" FILES ${CURL_HEADERS}) + +INCLUDE_DIRECTORIES( + ${CURL_SOURCE_DIR}/lib # To be able to reach "setup_once.h" + ${CURL_BINARY_DIR}/lib # To be able to reach "config.h" + ${CURL_BINARY_DIR}/include # To be able to reach "curl/curlbuild.h" +) + + +# Setup dependencies + +IF(CURL_ZLIB AND ZLIB_FOUND) + TARGET_LINK_LIBRARIES(${EXE_NAME} ${ZLIB_LIBRARIES}) + #ADD_DEFINITIONS( -DHAVE_ZLIB_H -DHAVE_ZLIB -DHAVE_LIBZ ) +ENDIF() +# IF(CURL_SSL AND CURL_CONFIG_HAS_BEEN_RUN_BEFORE) + # TARGET_LINK_LIBRARIES(${EXE_NAME} ${OPENSSL_LIBRARIES}) + # ADD_DEFINITIONS( -DUSE_SSLEAY ) +# ENDIF() +TARGET_LINK_LIBRARIES( ${EXE_NAME} libcurl ) + + +################################################################################ + +#SET_TARGET_PROPERTIES(${EXE_NAME} ARCHIVE_OUTPUT_DIRECTORY "blah blah blah") +#SET_TARGET_PROPERTIES(${EXE_NAME} RUNTIME_OUTPUT_DIRECTORY "blah blah blah") +#SET_TARGET_PROPERTIES(${EXE_NAME} LIBRARY_OUTPUT_DIRECTORY "blah blah blah") + +# Add the postfix to the executable since it is not added automatically as for modules and shared libraries +SET_TARGET_PROPERTIES(${EXE_NAME} PROPERTIES DEBUG_POSTFIX "${CMAKE_DEBUG_POSTFIX}") + +IF(MSVC) + IF(NOT BUILD_RELEASE_DEBUG_DIRS) + # Ugly workaround to remove the "/debug" or "/release" in each output + SET_TARGET_PROPERTIES(${EXE_NAME} PROPERTIES PREFIX "../") + ENDIF() +ENDIF() + +#INCLUDE(ModuleInstall OPTIONAL) |