From 2841400e0c583281c104a4c3c24a6aeb976703b3 Mon Sep 17 00:00:00 2001 From: theraven Date: Tue, 18 Dec 2012 11:57:55 +0000 Subject: [PATCH] Add CPack configuration to CMakeLists.txt. RPMs, DEBs and tarballs can now be built directly from the build system. --- CMakeLists.txt | 47 +++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 39 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e2ae5d3..62004e7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -114,7 +114,7 @@ endif () set(LLVM_OPTS TRUE CACHE BOOL "Build LLVM Objective-C optimisations") if (LLVM_OPTS) - add_subdirectory(opts) + #add_subdirectory(opts) endif () @@ -169,13 +169,25 @@ else (CXX_RUNTIME) ) endif (CXX_RUNTIME) -add_library(objc SHARED ${libobjc_C_SRCS} ${libobjc_ASM_SRCS} ${libobjc_OBJC_SRCS} ${libobjc_CXX_SRCS} ${libobjc_HDRS}) +add_library(objc SHARED ${libobjc_C_SRCS} ${libobjc_ASM_SRCS} ${libobjc_OBJC_SRCS} ${libobjc_CXX_SRCS}) set_target_properties(objc PROPERTIES LINKER_LANGUAGE C - PUBLIC_HEADER "${libobjc_HDRS}" SOVERSION ${libobjc_VERSION} ) +set(INSTALL_TARGETS objc) + + +set(BUILD_STATIC_LIBOBJC false CACHE BOOL + "Build the static version of libobjc") +if (BUILD_STATIC_LIBOBJC) + add_library(objc-static STATIC ${libobjc_C_SRCS} ${libobjc_ASM_SRCS} ${libobjc_OBJC_SRCS} ${libobjc_CXX_SRCS}) + set_target_properties(objc-static PROPERTIES + POSITION_INDEPENDENT_CODE true + OUTPUT_NAME objc) + list(APPEND INSTALL_TARGETS objc-static) +endif () + # Currently, we actually need pthreads, but we should use the platform's native # threading implementation (we do for everything except thread-local storage) @@ -218,11 +230,30 @@ else () EXEC_PROGRAM(gnustep-config ARGS "--variable=GNUSTEP_${GNUSTEP_INSTALL_TYPE}_HEADERS" OUTPUT_VARIABLE HEADER_INSTALL_PATH) -else () -elseif (${GNUSTEP_INSTALL_TYPE} EQUAL "Local") endif () -install(TARGETS objc +install(TARGETS ${INSTALL_TARGETS} LIBRARY DESTINATION ${LIB_INSTALL_PATH} - ARCHIVE DESTINATION ${LIB_INSTALL_PATH} - PUBLIC_HEADER DESTINATION "${HEADER_INSTALL_PATH}/objc") + ARCHIVE DESTINATION ${LIB_INSTALL_PATH}) +install(FILES ${libobjc_HDRS} + DESTINATION "${HEADER_INSTALL_PATH}/objc") + + + +set(CPACK_GENERATOR TGZ CACHE STRING + "Installer types to generate. Sensible options include TGZ, RPM and DEB") + +set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "GNUstep Objective-C Runtime") +set(CPACK_PACKAGE_VENDOR "The GNUstep Project") +set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README") +set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING") +set(CPACK_PACKAGE_VERSION_MAJOR "1") +set(CPACK_PACKAGE_VERSION_MINOR "7") +set(CPACK_PACKAGE_VERSION_PATCH "0") +set(CPACK_PACKAGE_CONTACT "GNUstep Developer ") +set(CPACK_PACKAGE_INSTALL_DIRECTORY "CMake ${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}") +if (UNIX) + set(CPACK_STRIP_FILES true CACHE BOOL "Strip libraries when packaging") +endif () +include (CPack) +