diff --git a/CMakeLists.txt b/CMakeLists.txt index 1852b0e96..4099e1737 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -86,13 +86,14 @@ if(RDK_BUILD_PYTHON_WRAPPERS) ) message("Python Install directory ${PYTHON_INSTDIR}") install(DIRECTORY rdkit DESTINATION ${PYTHON_INSTDIR} + COMPONENT python PATTERN ".svn" EXCLUDE PATTERN "test_data" EXCLUDE PATTERN "testData" EXCLUDE PATTERN "test_list*" EXCLUDE PATTERN "CMake*" EXCLUDE PATTERN "Basement" EXCLUDE - PATTERN "UnitTest*" EXCLUDE + PATTERN "UnitTest*" EXCLUDE ) set(RDKit_PythonDir "${PYTHON_INSTDIR}/rdkit") endif(RDK_INSTALL_INTREE) @@ -112,19 +113,34 @@ ADD_DEFINITIONS("-Wno-deprecated -Wno-unused-function -fno-strict-aliasing -fPIC endif() if(NOT RDK_INSTALL_INTREE) - install(DIRECTORY Data Docs Contrib DESTINATION + install(DIRECTORY Data DESTINATION ${RDKit_ShareDir} + COMPONENT data + PATTERN ".svn" EXCLUDE + ) + install(DIRECTORY Docs DESTINATION + ${RDKit_ShareDir} + COMPONENT docs + PATTERN ".svn" EXCLUDE + ) + install(DIRECTORY Contrib DESTINATION + ${RDKit_ShareDir} + COMPONENT extras PATTERN ".svn" EXCLUDE ) if(RDK_BUILD_PYTHON_WRAPPERS) install(DIRECTORY Projects DESTINATION ${RDKit_ShareDir} + COMPONENT extras PATTERN ".svn" EXCLUDE PATTERN "test_list*" EXCLUDE PATTERN "CMake*" EXCLUDE ) endif(RDK_BUILD_PYTHON_WRAPPERS) - install(FILES README license.txt DESTINATION ${RDKit_ShareDir}) + install(FILES README license.txt + DESTINATION ${RDKit_ShareDir} + COMPONENT base + ) endif(NOT RDK_INSTALL_INTREE) add_subdirectory(External) @@ -135,3 +151,48 @@ if(RDK_BUILD_PYTHON_WRAPPERS) add_subdirectory(rdkit) endif(RDK_BUILD_PYTHON_WRAPPERS) +# Packaging +SET(CPACK_GENERATOR "TGZ;DEB;RPM") +SET(CPACK_RPM_COMPONENT_INSTALL ON) +SET(CPACK_DEB_COMPONENT_INSTALL ON) +SET(CPACK_MONOLITHIC_INSTALL OFF) + +SET(CPACK_COMPONENTS_ALL headers static_libs dynamic_libs python data docs extras base) +set(CPACK_COMPONENT_DYNAMIC_LIBS_GROUP "Runtime") +set(CPACK_COMPONENT_BASE_GROUP "Runtime") +set(CPACK_COMPONENT_DATA_GROUP "Runtime") +set(CPACK_COMPONENT_DOCS_GROUP "Runtime") +set(CPACK_COMPONENT_HEADERS_GROUP "Development") +set(CPACK_COMPONENT_STATIC_LIBS_GROUP "Development") +set(CPACK_COMPONENT_PYTHON_GROUP "Python") +set(CPACK_COMPONENT_EXTRAS_GROUP "Extras") + + +SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "RDKit") +SET(CPACK_PACKAGE_VENDOR "rdkit.org") +SET(CPACK_PACKAGE_CONTACT "greg.landrum@gmail.com") +SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README") +SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/license.txt") +SET(CPACK_PACKAGE_VERSION_MAJOR "2011") +SET(CPACK_PACKAGE_VERSION_MINOR "6") +SET(CPACK_PACKAGE_VERSION_PATCH "1") +SET(CPACK_PACKAGE_INSTALL_DIRECTORY "CMake ${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}") +#IF(WIN32 AND NOT UNIX) +# # There is a bug in NSI that does not handle full unix paths properly. Make +# # sure there is at least one set of four (4) backlasshes. +# SET(CPACK_PACKAGE_ICON "${CMake_SOURCE_DIR}/Utilities/Release\\\\InstallIcon.bmp") +# SET(CPACK_NSIS_INSTALLED_ICON_NAME "bin\\\\MyExecutable.exe") +# SET(CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_INSTALL_DIRECTORY} My Famous Project") +# SET(CPACK_NSIS_HELP_LINK "http:\\\\\\\\www.my-project-home-page.org") +# SET(CPACK_NSIS_URL_INFO_ABOUT "http:\\\\\\\\www.my-personal-home-page.com") +# SET(CPACK_NSIS_CONTACT "me@my-personal-home-page.com") +# SET(CPACK_NSIS_MODIFY_PATH ON) +#ELSE(WIN32 AND NOT UNIX) +# SET(CPACK_STRIP_FILES "bin/MyExecutable") +# SET(CPACK_SOURCE_STRIP_FILES "") +#ENDIF(WIN32 AND NOT UNIX) +#SET(CPACK_PACKAGE_EXECUTABLES "MyExecutable" "My Executable") + +SET(CPACK_SET_DESTDIR ON) + +INCLUDE(CPack) diff --git a/Code/cmake/Modules/RDKitUtils.cmake b/Code/cmake/Modules/RDKitUtils.cmake index e25918c57..d451276f1 100644 --- a/Code/cmake/Modules/RDKitUtils.cmake +++ b/Code/cmake/Modules/RDKitUtils.cmake @@ -23,26 +23,23 @@ macro(rdkit_library) if(MSVC) add_library(${RDKLIB_NAME} ${RDKLIB_SOURCES}) INSTALL(TARGETS ${RDKLIB_NAME} - DESTINATION ${RDKit_LibDir}/${RDKLIB_DEST}) + DESTINATION ${RDKit_LibDir}/${RDKLIB_DEST} + COMPONENT dev ) else(MSVC) # we're going to always build in shared mode since we # need exceptions to be (correctly) catchable across # boundaries. As of now (June 2010), this doesn't work # with g++ unless libraries are shared. - #IF(RDKLIB_SHARED) add_library(${RDKLIB_NAME} SHARED ${RDKLIB_SOURCES}) INSTALL(TARGETS ${RDKLIB_NAME} - DESTINATION ${RDKit_LibDir}/${RDKLIB_DEST}) + DESTINATION ${RDKit_LibDir}/${RDKLIB_DEST} + COMPONENT runtime ) add_library(${RDKLIB_NAME}_static ${RDKLIB_SOURCES}) if(RDK_INSTALL_STATIC_LIBS) INSTALL(TARGETS ${RDKLIB_NAME}_static - DESTINATION ${RDKit_LibDir}/${RDKLIB_DEST}) + DESTINATION ${RDKit_LibDir}/${RDKLIB_DEST} + COMPONENT dev ) endif(RDK_INSTALL_STATIC_LIBS) - #ELSE(RDKLIB_SHARED) - # add_library(${RDKLIB_NAME} ${RDKLIB_SOURCES}) - # INSTALL(TARGETS ${RDKLIB_NAME} - # DESTINATION ${RDKit_LibDir}/${RDKLIB_DEST}) - #ENDIF(RDKLIB_SHARED) IF(RDKLIB_LINK_LIBRARIES) target_link_libraries(${RDKLIB_NAME} ${RDKLIB_LINK_LIBRARIES}) ENDIF(RDKLIB_LINK_LIBRARIES) @@ -70,7 +67,9 @@ macro(rdkit_headers) "" ${ARGN}) # RDKHDR_DEFAULT_ARGS -> RDKHDR_DEST - install(FILES ${RDKHDR_DEFAULT_ARGS} DESTINATION ${RDKit_HdrDir}/${RDKHDR_DEST}) + install(FILES ${RDKHDR_DEFAULT_ARGS} + DESTINATION ${RDKit_HdrDir}/${RDKHDR_DEST} + COMPONENT dev ) endif(NOT RDK_INSTALL_INTREE) endmacro(rdkit_headers) diff --git a/license.txt b/license.txt index eee2a2a85..0feccf3f3 100644 --- a/license.txt +++ b/license.txt @@ -1,7 +1,7 @@ Unless otherwise noted, all files in this directory and all subdirectories are distributed under the following license: -Copyright (c) 2006-2010 +Copyright (c) 2006-2011 Rational Discovery LLC, Greg Landrum, and Julie Penzotti All rights reserved.