diff --git a/Applications/CLI/CMakeLists.txt b/Applications/CLI/CMakeLists.txt index dec2657ef899cad00df1ac59965a518d6ec60c98..ca2e06fa75c12961e5c020acd045e8efa5b39b18 100644 --- a/Applications/CLI/CMakeLists.txt +++ b/Applications/CLI/CMakeLists.txt @@ -19,3 +19,15 @@ IF(OGS_USE_PETSC) ENDIF() INCLUDE(Tests.cmake) + +#################### +### Installation ### +#################### +INSTALL (TARGETS ogs RUNTIME DESTINATION bin COMPONENT ogs_cli) + +set(CPACK_PACKAGE_EXECUTABLES ${CPACK_PACKAGE_EXECUTABLES} "ogs" "OGS Simulator") +cpack_add_component(ogs_cli + DISPLAY_NAME "OGS THMC Simulator" + DESCRIPTION "The command line interface for OpenGeoSys." + GROUP Applications +) diff --git a/Applications/DataExplorer/DataExplorer.cmake b/Applications/DataExplorer/DataExplorer.cmake index 6784c70fec6f06e23b112c92bb093aa677620815..0421bf7695596aa9f83aa4b09884e573f76a552e 100644 --- a/Applications/DataExplorer/DataExplorer.cmake +++ b/Applications/DataExplorer/DataExplorer.cmake @@ -63,7 +63,10 @@ INCLUDE_DIRECTORIES( SOURCE_GROUP("UI Files" REGULAR_EXPRESSION "\\w*\\.ui") SOURCE_GROUP("Moc Files" REGULAR_EXPRESSION "moc_.*") -# Create the library +# Application icon +SET(APP_ICON ${CMAKE_SOURCE_DIR}/scripts/packaging/ogs-de-icon.icns) + +# Create the executable ADD_EXECUTABLE( DataExplorer MACOSX_BUNDLE main.cpp ${SOURCES} @@ -72,6 +75,8 @@ ADD_EXECUTABLE( DataExplorer MACOSX_BUNDLE ${MOC_SOURCES} ${UIS} ${QTRESOURCES} + ${APP_ICON} + exe-icon.rc ) TARGET_LINK_LIBRARIES( DataExplorer @@ -132,33 +137,30 @@ SET_PROPERTY(TARGET DataExplorer PROPERTY FOLDER "DataExplorer") #################### ### Installation ### #################### - IF(APPLE) - SET(MACOSX_BUNDLE_INFO_STRING "${PROJECT_NAME} ${OGS_VERSION}") - SET(MACOSX_BUNDLE_BUNDLE_VERSION "${PROJECT_NAME} ${OGS_VERSION}") - SET(MACOSX_BUNDLE_LONG_VERSION_STRING "${PROJECT_NAME} ${OGS_VERSION}") - SET(MACOSX_BUNDLE_SHORT_VERSION_STRING "${OGS_VERSION}") - SET(MACOSX_BUNDLE_COPYRIGHT "2013 OpenGeoSys Community") - #SET(MACOSX_BUNDLE_ICON_FILE "audio-input-microphone.icns") - SET(MACOSX_BUNDLE_GUI_IDENTIFIER "org.opengeosys") - SET(MACOSX_BUNDLE_BUNDLE_NAME "${PROJECT_NAME}") - - SET(MACOSX_BUNDLE_RESOURCES "${EXECUTABLE_OUTPUT_PATH}/DataExplorer.app/Contents/Resources") - SET(MACOSX_BUNDLE_ICON "${ICONS_DIR}/${MACOSX_BUNDLE_ICON_FILE}") - #EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E make_directory ${MACOSX_BUNDLE_RESOURCES}) - #EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E copy_if_different ${MACOSX_BUNDLE_ICON} ${MACOSX_BUNDLE_RESOURCES}) + INCLUDE(packaging/PackagingMacros) + ConfigureMacOSXBundle(DataExplorer ${APP_ICON}) INSTALL (TARGETS DataExplorer DESTINATION .) SET(CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION .) INCLUDE(InstallRequiredSystemLibraries) INCLUDE(DeployQt4) - INSTALL_QT4_EXECUTABLE(DataExplorer.app) + INSTALL_QT4_EXECUTABLE(DataExplorer.app "" "" "" "" "" ogs_gui) +ELSE() + INSTALL (TARGETS DataExplorer RUNTIME DESTINATION bin COMPONENT ogs_gui) +ENDIF() +cpack_add_component(ogs_gui + DISPLAY_NAME "OGS Data Explorer" + DESCRIPTION "The graphical user interface for OpenGeoSys." + GROUP Applications +) +set(CPACK_PACKAGE_EXECUTABLES ${CPACK_PACKAGE_EXECUTABLES} "DataExplorer" "OGS Data Explorer" PARENT_SCOPE) +set(CPACK_NSIS_MENU_LINKS ${CPACK_NSIS_MENU_LINKS} "bin/DataExplorer.exe" "Data Explorer" PARENT_SCOPE) +IF(APPLE) RETURN() ENDIF() -INSTALL (TARGETS DataExplorer RUNTIME DESTINATION bin COMPONENT ogs_gui) - IF(MSVC) SET(OGS_GUI_EXE ${EXECUTABLE_OUTPUT_PATH}/Release/DataExplorer.exe) ELSE(MSVC) diff --git a/Applications/DataExplorer/exe-icon.rc b/Applications/DataExplorer/exe-icon.rc new file mode 100644 index 0000000000000000000000000000000000000000..1e5fc317137b5a9d2b7a172decece8dbf23ebce8 --- /dev/null +++ b/Applications/DataExplorer/exe-icon.rc @@ -0,0 +1 @@ + IDI_ICON1 ICON DISCARDABLE "..\..\..\scripts\packaging\ogs-de-icon.ico" \ No newline at end of file diff --git a/Applications/Utils/FileConverter/CMakeLists.txt b/Applications/Utils/FileConverter/CMakeLists.txt index a5025cc3bd752d61772d7947eef6541fd45d6789..d930f1c0f8f75a512bebea2f3f5030e300187b40 100644 --- a/Applications/Utils/FileConverter/CMakeLists.txt +++ b/Applications/Utils/FileConverter/CMakeLists.txt @@ -21,8 +21,6 @@ IF (QT4_FOUND) ${QT_LIBRARIES} ) - INSTALL ( TARGETS ConvertSHPToGLI RUNTIME DESTINATION bin COMPONENT ConvertSHPToGLI ) - ADD_EXECUTABLE (generateBCandGLI generateBCandGLI.cpp ) TARGET_LINK_LIBRARIES (generateBCandGLI ApplicationsLib @@ -125,3 +123,16 @@ TARGET_LINK_LIBRARIES (TIN2VTK ${CATALYST_LIBRARIES} ) ADD_CATALYST_DEPENDENCY(TIN2VTK) + +#################### +### Installation ### +#################### +INSTALL(TARGETS ConvertSHPToGLI generateBCandGLI generateBCFromPolyline generateBCandGLI + FEFLOW2OGS generateMatPropsFromMatID GMSH2OGS OGS2VTK VTK2OGS VTK2TIN + RUNTIME DESTINATION bin COMPONENT ogs_converter) + +cpack_add_component(ogs_converter + DISPLAY_NAME "File converter" + DESCRIPTION "File converter." + GROUP Utilities +) diff --git a/Applications/Utils/OGSFileConverter/CMakeLists.txt b/Applications/Utils/OGSFileConverter/CMakeLists.txt index 07c1925deb2e969c5aaa9ac5c34a61c7f9ed06ff..ad916f98e78ec6ad50aafb1506b413cf4db749d4 100644 --- a/Applications/Utils/OGSFileConverter/CMakeLists.txt +++ b/Applications/Utils/OGSFileConverter/CMakeLists.txt @@ -96,6 +96,6 @@ SET_PROPERTY(TARGET OGSFileConverter PROPERTY FOLDER "Utilities") ### Installation ### #################### -IF(OGS_PACKAGING) - INSTALL (TARGETS OGSFileConverter RUNTIME DESTINATION bin COMPONENT ogs) -ENDIF() +INSTALL (TARGETS OGSFileConverter RUNTIME DESTINATION bin COMPONENT ogs_cli) +set(CPACK_PACKAGE_EXECUTABLES ${CPACK_PACKAGE_EXECUTABLES} "OGSFileConverter" "File Converter") +set(CPACK_NSIS_MENU_LINKS ${CPACK_NSIS_MENU_LINKS} "bin/OGSFileConverter.exe" "File Converter" PARENT_SCOPE) diff --git a/CMakeLists.txt b/CMakeLists.txt index a7de12a86fa3a86e6f83d8680f64ee46d899e5b3..06049bc26f81090eeb32a7804c21fe6cf9cb6ee6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,6 +5,12 @@ # Specify minimum CMake version CMAKE_MINIMUM_REQUIRED(VERSION 2.8.8) +# Set CMake policies +CMAKE_POLICY(SET CMP0011 OLD) +IF(CMAKE_VERSION VERSION_GREATER 3.0.2) + CMAKE_POLICY(SET CMP0054 NEW) +ENDIF() + # Project name PROJECT( OGS-6 ) @@ -13,10 +19,11 @@ PROJECT( OGS-6 ) ########################################################################### SET (OGS_VERSION_MAJOR 6) SET (OGS_VERSION_MINOR 0) -SET (OGS_VERSION_PATCH "0 Beta") +SET (OGS_VERSION_PATCH 0) +SET (OSG_VERSION_STATUS "Beta") # Can be words like Alpha, Beta, Prerelease or "" SET (OGS_RELEASE_PERSONS "Core developers") SET (OGS_VERSION "${OGS_VERSION_MAJOR}.${OGS_VERSION_MINOR}.${OGS_VERSION_PATCH}") -SET (OGS_VERSION_AND_PERSONS "${OGS_VERSION} (${OGS_RELEASE_PERSONS})") +SET (OGS_VERSION_AND_PERSONS "${OGS_VERSION} ${OSG_VERSION_STATUS} (${OGS_RELEASE_PERSONS})") SET (OGS_DATE "2012-08-20") @@ -91,10 +98,8 @@ ENDIF (OGS_CMAKE_DEBUG) OPTION(OGS_COVERAGE "Enables code coverage measurements with gcov/lcov." OFF) # Packaging -IF(WIN32) - OPTION(OGS_PACKAGING_NSIS "Do you want to package with NSIS?") -ENDIF() -INCLUDE(scripts/cmake/Pack.cmake) +OPTION(OGS_DOWNLOAD_ADDITIONAL_CONTENT "Should addional content such as manuals be downloaded and packaged?" OFF) +INCLUDE(scripts/cmake/packaging/Pack.cmake) ###################### ### Subdirectories ### diff --git a/Documentation/OpenGeoSys-Logo.bmp b/Documentation/OpenGeoSys-Logo.bmp new file mode 100644 index 0000000000000000000000000000000000000000..699e64afccc073cc007ab2c48604003e595687f5 Binary files /dev/null and b/Documentation/OpenGeoSys-Logo.bmp differ diff --git a/FileIO/CMakeLists.txt b/FileIO/CMakeLists.txt index 0f4f665edb519c41b16942e77fad22227eddead3..bee77ff383b63ed6470b25556ca91a6c7a206b7b 100644 --- a/FileIO/CMakeLists.txt +++ b/FileIO/CMakeLists.txt @@ -61,8 +61,8 @@ TARGET_LINK_LIBRARIES (FileIO ADD_CATALYST_DEPENDENCY(FileIO) FILE(GLOB XSD_FILES . *.xsd) -IF(APPLE) - INSTALL(FILES ${XSD_FILES} DESTINATION ${CMAKE_BINARY_DIR}/_CPack_Packages/OSX/DragNDrop/${CPACK_PACKAGE_FILE_NAME}/DataExplorer.app/Contents/MacOS) +IF(APPLE AND OGS_BUILD_GUI) + INSTALL(FILES ${XSD_FILES} DESTINATION ${CMAKE_BINARY_DIR}/_CPack_Packages/Darwin/DragNDrop/${CPACK_PACKAGE_FILE_NAME}/ALL_IN_ONE/DataExplorer.app/Contents/MacOS COMPONENT ogs_gui) ELSE() - INSTALL(FILES ${XSD_FILES} DESTINATION bin) + INSTALL(FILES ${XSD_FILES} DESTINATION bin COMPONENT ogs_cli) ENDIF() diff --git a/ThirdParty/CMakeLists.txt b/ThirdParty/CMakeLists.txt index 7eb1c72b91664ca10945549d4e5e80702dd5bdd5..023161c8c294ddb5d0017e40262e8def6857ac2a 100644 --- a/ThirdParty/CMakeLists.txt +++ b/ThirdParty/CMakeLists.txt @@ -38,7 +38,7 @@ ENDIF() # tetgen IF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/tetgen/CMakeLists.txt) ADD_SUBDIRECTORY(tetgen) - IF(APPLE) + IF(APPLE AND OGS_BUILD_GUI) INSTALL (PROGRAMS $<TARGET_FILE:tetgen> DESTINATION DataExplorer.app/Contents/MacOS COMPONENT ogs_extras) ELSE() INSTALL (PROGRAMS $<TARGET_FILE:tetgen> DESTINATION bin COMPONENT ogs_extras) diff --git a/scripts/cmake/CMakeSetup.cmake b/scripts/cmake/CMakeSetup.cmake index 5768a4ee2baf407d5097460a62313d2d241ce716..3704b5143ca4900f59d2527dfda6fb3115f0a7a7 100644 --- a/scripts/cmake/CMakeSetup.cmake +++ b/scripts/cmake/CMakeSetup.cmake @@ -18,8 +18,22 @@ INCLUDE(GetGitRevisionDescription) GET_GIT_HEAD_REVISION(GIT_REFSPEC GIT_SHA1) STRING(SUBSTRING ${GIT_SHA1} 0 8 GIT_SHA1_SHORT) -# Suppress warning on setting policies -CMAKE_POLICY(SET CMP0011 OLD) - # Get the hostname SITE_NAME(HOSTNAME) + +# Compute OS X version number +IF(APPLE) + IF(CMAKE_SYSTEM_VERSION VERSION_EQUAL 12.0) + SET(OSX_VERSION 10.8 CACHE STRING "OS X version number") + SET(OSX_VERSION_NAME CACHE STRING "Mountain Lion") + ENDIF() + IF(CMAKE_SYSTEM_VERSION VERSION_EQUAL 13.0) + SET(OSX_VERSION 10.9 CACHE STRING "OS X version number") + SET(OSX_VERSION_NAME CACHE STRING "Mavericks") + ENDIF() + IF(CMAKE_SYSTEM_VERSION VERSION_EQUAL 14.0) + SET(OSX_VERSION 10.10 CACHE STRING "OS X version number") + SET(OSX_VERSION_NAME CACHE STRING "Yosemite") + ENDIF() +ENDIF() +MARK_AS_ADVANCED(OSX_VERSION OSX_VERSION_NAME) diff --git a/scripts/cmake/CompilerSetup.cmake b/scripts/cmake/CompilerSetup.cmake index fcd13e635e68f42333e1261c74fb208688ccca8d..79e78f8fb3ebab1081a0c5d027c9230f915aff4a 100644 --- a/scripts/cmake/CompilerSetup.cmake +++ b/scripts/cmake/CompilerSetup.cmake @@ -3,16 +3,17 @@ INCLUDE(SetDefaultBuildType) INCLUDE(DisableCompilerFlag) SET_DEFAULT_BUILD_TYPE(Debug) INCLUDE(MSVCMultipleProcessCompile) # /MP switch (multi processor) for VS +SET(CMAKE_OSX_ARCHITECTURES "x86_64") # Set compiler helper variables -IF ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") +IF (${CMAKE_CXX_COMPILER_ID} MATCHES "Clang") SET(COMPILER_IS_CLANG TRUE) -ELSEIF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") +ELSEIF (${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") SET(COMPILER_IS_GCC TRUE) -ELSEIF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel") +ELSEIF (${CMAKE_CXX_COMPILER_ID} STREQUAL "Intel") SET(COMPILER_IS_INTEL TRUE) -ELSEIF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") +ELSEIF (${CMAKE_CXX_COMPILER_ID} STREQUAL "MSVC") SET(COMPILER_IS_MSVC TRUE) ENDIF () # CMAKE_CXX_COMPILER_ID @@ -32,21 +33,16 @@ IF(COMPILER_IS_GCC) ENDIF() IF( NOT CMAKE_BUILD_TYPE STREQUAL "Debug" ) MESSAGE(STATUS "Set GCC release flags") - IF(APPLE AND GCC_VERSION VERSION_LESS "4.3" AND NOT "${CMAKE_GENERATOR}" STREQUAL "Xcode" ) - # -march=native does not work here when on normal gcc compiler - # see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33144 - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -mtune=native -msse4.2 -DNDEBUG") - ELSE() - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -mtune=native -msse4.2 -DNDEBUG") - # Disable -march=native on mac or Ninja generator - IF(NOT APPLE AND NOT "${CMAKE_GENERATOR}" STREQUAL "Ninja") - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native") - ENDIF() + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -mtune=native -msse4.2 -DNDEBUG") + # Disable -march=native on mac or Ninja generator + IF(NOT APPLE AND NOT "${CMAKE_GENERATOR}" STREQUAL "Ninja") + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native") ENDIF() ENDIF() SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wno-deprecated -Wall -Wextra") ENDIF() # COMPILER_IS_GCC +### Clang IF(COMPILER_IS_CLANG) IF(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "3.3") MESSAGE(FATAL_ERROR "Aborting: Clang 3.3 is required! Found version ${CMAKE_CXX_COMPILER_VERSION}") diff --git a/scripts/cmake/MSVCPaths.cmake b/scripts/cmake/MSVCPaths.cmake index b49e618dbeef2f07a95c12b4226478af8488fb55..c5ec86f2d698c9282e28d1cee33ffcc0a602c6b9 100644 --- a/scripts/cmake/MSVCPaths.cmake +++ b/scripts/cmake/MSVCPaths.cmake @@ -14,9 +14,11 @@ IF(MSVC) ENDIF() GET_FILENAME_COMPONENT(VS_DIR "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\${MSVC_NUMBER}\\Setup\\VS;ProductDir]" REALPATH) GET_FILENAME_COMPONENT(VS_EXPRESS_DIR "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VCExpress\\${MSVC_NUMBER}\\Setup\\VS;ProductDir]" REALPATH) + + SET(X86_TMP "ProgramFiles(x86)") SET(MSVC_INSTALL_PATHS ${VS_DIR} ${VS_EXPRESS_DIR} - "$ENV{ProgramFiles}/Microsoft Visual Studio ${MSVC_NUMBER}" - "$ENV{ProgramFiles(x86)}/Microsoft Visual Studio ${MSVC_NUMBER}" + "$ENV{ProgramFiles}/Microsoft\ Visual\ Studio\ ${MSVC_NUMBER}" + "$ENV{${X86_TMP}}/Microsoft\ Visual\ Studio\ ${MSVC_NUMBER}" CACHE STRING "" FORCE) ENDIF() diff --git a/scripts/cmake/Pack.cmake b/scripts/cmake/Pack.cmake deleted file mode 100644 index d668b6351672c812571f764d30b7ebe3d04d5a97..0000000000000000000000000000000000000000 --- a/scripts/cmake/Pack.cmake +++ /dev/null @@ -1,82 +0,0 @@ -#### Packaging setup #### -SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "OGS-6") -SET(CPACK_PACKAGE_VENDOR "OpenGeoSys Community (http://www.opengeosys.org)") -SET(CPACK_PACKAGE_INSTALL_DIRECTORY "OGS-${OGS_VERSION_MAJOR}.${OGS_VERSION_MINOR}.${OGS_VERSION_PATCH}") -SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_SOURCE_DIR}/README.md") -SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE.txt") -SET(CPACK_PACKAGE_VERSION_MAJOR "${OGS_VERSION_MAJOR}") -SET(CPACK_PACKAGE_VERSION_MINOR "${OGS_VERSION_MINOR}") -SET(CPACK_PACKAGE_VERSION_PATCH "${OGS_VERSION_PATCH}") -SET(CPACK_PACKAGE_FILE_NAME "ogs-${OGS_VERSION}-${CMAKE_SYSTEM}-x${BITS}") - -IF(APPLE) - IF(CMAKE_INSTALL_PREFIX MATCHES "/usr/local") - SET(CMAKE_INSTALL_PREFIX "/Applications") - ENDIF() - SET(CMAKE_OSX_ARCHITECTURES "x86_64") - SET(CPACK_GENERATOR "DragNDrop") - SET(CPACK_DMG_FORMAT "UDBZ") - SET(CPACK_DMG_VOLUME_NAME "${PROJECT_NAME}") - # See http://stackoverflow.com/a/16662169/80480 how to create the DS_Store file. - SET(CPACK_DMG_BACKGROUND_IMAGE ${CMAKE_SOURCE_DIR}/Documentation/OpenGeoSys-Logo.png) - SET(CPACK_DMG_DS_STORE ${CMAKE_SOURCE_DIR}/scripts/packaging/.DS_Store) - SET(CPACK_SYSTEM_NAME "OSX") -ELSE() # APPLE - IF (WIN32) - IF(OGS_PACKAGING_NSIS) - SET(CPACK_GENERATOR NSIS) - # 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}/CMakeConfiguration\\\\OGS_Logo_Installer.bmp") - #SET(CPACK_NSIS_INSTALLED_ICON_NAME "bin\\\\MyExecutable.exe") - SET(CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_DESCRIPTION_SUMMARY}") - SET(CPACK_NSIS_HELP_LINK "https:\\\\\\\\www.opengeosys.org") - SET(CPACK_NSIS_URL_INFO_ABOUT "http:\\\\\\\\www.opengeosys.org") - SET(CPACK_NSIS_CONTACT "info@opengeosys.org") - SET(CPACK_NSIS_MODIFY_PATH ON) - # SET(CPACK_NSIS_MENU_LINKS "http://www.opengeosys.org" "OGS Project Page") - # SET(CPACK_NSIS_MENU_LINKS "http://www.opengeosys.org/forum/" "OGS forum") - # SET(CPACK_NSIS_MENU_LINKS "https://github.com/ufz/ogs" "OGS source code") - # SET(CPACK_NSIS_MENU_LINKS "http://devguide.opengeosys.org" "OGS developer guide") - ELSE() - SET(CPACK_GENERATOR ZIP) - SET(CPACK_PACKAGE_FILE_NAME "ogs-6") - ENDIF() - ENDIF() # WIN32 - - IF(UNIX) - SET(CPACK_GENERATOR TGZ) - ENDIF() - - SET(CPACK_COMPONENT_OGS_DISPLAY_NAME "Executable") - SET(CPACK_COMPONENT_OGS_DESCRIPTION "The command line executable") - - SET(CPACK_COMPONENTS_ALL_IN_ONE_PACKAGE 1) - IF(OGS_BUILD_GUI) - SET(CPACK_PACKAGE_EXECUTABLES "DataExplorer" "OGS User Interface") - SET(CPACK_COMPONENTS_ALL ${CPACK_COMPONENTS_ALL} ogs_gui Unspecified) - SET(CPACK_COMPONENT_OGS_GUI_DISPLAY_NAME "Data Explorer") - SET(CPACK_COMPONENT_OGS_GUI_DESCRIPTION "The graphical user interface for OpenGeoSys") - #SET(CPACK_COMPONENT_OGS_GUI_DEPENDS ogs) - ELSE() - # SET(CPACK_PACKAGE_EXECUTABLES "ogs" "OGS Command Line") - # SET(CPACK_COMPONENTS_ALL ${CPACK_COMPONENTS_ALL} ogs Unspecified) - ENDIF() -ENDIF() # APPLE - -# Additional binaries, i.e. OGS-5 file converter -# Can be given as a list, paths must be relative to CMAKE_BINARY_DIR! -IF(OGS_PACKAGE_ADDITIONAL_BINARIES) - FOREACH(ADDITIONAL_BINARY ${OGS_PACKAGE_ADDITIONAL_BINARIES}) - GET_FILENAME_COMPONENT(ADDITIONAL_BINARY_NAME ${ADDITIONAL_BINARY} NAME) - MESSAGE(STATUS "Packaging additional binary: ${ADDITIONAL_BINARY_NAME}") - IF(APPLE) - SET(INSTALL_LOCATION DataExplorer.app/Contents/MacOS) - ELSE() - SET(INSTALL_LOCATION bin) - ENDIF() - INSTALL (PROGRAMS ${CMAKE_BINARY_DIR}/${ADDITIONAL_BINARY} DESTINATION ${INSTALL_LOCATION} COMPONENT ogs_extras) - ENDFOREACH() -ENDIF() - -INCLUDE (CPack) diff --git a/scripts/cmake/packaging/Pack.cmake b/scripts/cmake/packaging/Pack.cmake new file mode 100644 index 0000000000000000000000000000000000000000..96256c584a0dc72f68ef06d3f877fbd218a7da69 --- /dev/null +++ b/scripts/cmake/packaging/Pack.cmake @@ -0,0 +1,86 @@ +INCLUDE(packaging/PackagingMacros) + +#### Packaging setup #### +SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "OGS-6 THM/C Simulator") +SET(CPACK_PACKAGE_VENDOR "OpenGeoSys Community (http://www.opengeosys.org)") +SET(CPACK_PACKAGE_INSTALL_DIRECTORY "OGS-${OGS_VERSION_MAJOR}.${OGS_VERSION_MINOR}.${OGS_VERSION_PATCH}") +SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_SOURCE_DIR}/README.md") +SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE.txt") +SET(CPACK_RESOURCE_FILE_README "${CMAKE_SOURCE_DIR}/README.md") +# SET(CPACK_RESOURCE_FILE_WELCOME "${CMAKE_SOURCE_DIR}/README.md") +SET(CPACK_PACKAGE_VERSION_MAJOR "${OGS_VERSION_MAJOR}") +SET(CPACK_PACKAGE_VERSION_MINOR "${OGS_VERSION_MINOR}") +SET(CPACK_PACKAGE_VERSION_PATCH "${OGS_VERSION_PATCH}") +IF(APPLE) + SET(CPACK_PACKAGE_FILE_NAME "ogs-${OGS_VERSION}-OSX-${OSX_VERSION}-x${BITS}") + SET(CPACK_SOURCE_PACKAGE_FILE_NAME ${CPACK_PACKAGE_FILE_NAME}) +ELSE() + SET(CPACK_PACKAGE_FILE_NAME "ogs-${OGS_VERSION}-${CMAKE_SYSTEM}-x${BITS}") +ENDIF() + +#SET(CPACK_COMPONENTS_ALL_IN_ONE_PACKAGE 1) + +IF (WIN32) + INCLUDE (packaging/PackagingWin) +ENDIF() +IF(UNIX) + INCLUDE (packaging/PackagingLinux) +ENDIF() +IF(APPLE) + INCLUDE (packaging/PackagingMac) +ENDIF() + +# Download additional content +IF(OGS_DOWNLOAD_ADDITIONAL_CONTENT) + DownloadAdditionalFilesForPackaging( + URLS http://docs.opengeosys.org/assets/releases/head/docs/DataExplorer-Manual.pdf + http://docs.opengeosys.org/assets/releases/head/docs/User_Manual.pdf + http://docs.opengeosys.org/assets/releases/head/docs/Theory_Manual.pdf + DESTINATION docs + PACKAGE_GROUP ogs_docs + ) + + IF(WIN32) + DownloadAdditionalFilesForPackaging( + URLS http://docs.opengeosys.org/assets/releases/head/win/OGSFileConverter.exe + DESTINATION bin + EXECUTABLE TRUE + PACKAGE_GROUP ogs_converter + ) + ENDIF() + IF(APPLE) + DownloadAdditionalFilesForPackaging( + URLS http://docs.opengeosys.org/assets/releases/head/mac/OGSFileConverter + DESTINATION bin + EXECUTABLE TRUE + PACKAGE_GROUP ogs_converter + ) + ENDIF() +ENDIF() + +INCLUDE (CPack) + +cpack_add_component_group(Applications + DISPLAY_NAME Applications + DESCRIPTION "OpenGeoSys applications" + EXPANDED + BOLD_TITLE +) + +cpack_add_component_group(Utilities + DISPLAY_NAME Utilities + DESCRIPTION "OpenGeoSys utilities" + EXPANDED +) + +cpack_add_component(ogs_extras + DISPLAY_NAME "Extra tools" + DESCRIPTION "Miscellaneous tools." + GROUP Utilities +) + +cpack_add_component(ogs_docs + DISPLAY_NAME "Documentation" + DESCRIPTION "PDF documentation." + GROUP Utilities +) diff --git a/scripts/cmake/packaging/PackagingLinux.cmake b/scripts/cmake/packaging/PackagingLinux.cmake new file mode 100644 index 0000000000000000000000000000000000000000..e9be72d60b7dea233782905365eb960551eb9480 --- /dev/null +++ b/scripts/cmake/packaging/PackagingLinux.cmake @@ -0,0 +1 @@ +SET(CPACK_GENERATOR TGZ) diff --git a/scripts/cmake/packaging/PackagingMac.cmake b/scripts/cmake/packaging/PackagingMac.cmake new file mode 100644 index 0000000000000000000000000000000000000000..550da01b9e1e0f0834751de638e2b29ff9cc9f1e --- /dev/null +++ b/scripts/cmake/packaging/PackagingMac.cmake @@ -0,0 +1,6 @@ +SET(CPACK_GENERATOR DragNDrop ZIP) +SET(CPACK_DMG_FORMAT "UDBZ") + +# See http://stackoverflow.com/a/16662169/80480 how to create the DS_Store file. +SET(CPACK_DMG_BACKGROUND_IMAGE ${CMAKE_SOURCE_DIR}/Documentation/OpenGeoSys-Logo.png) +SET(CPACK_DMG_DS_STORE ${CMAKE_SOURCE_DIR}/scripts/packaging/.DS_Store) diff --git a/scripts/cmake/packaging/PackagingMacros.cmake b/scripts/cmake/packaging/PackagingMacros.cmake new file mode 100644 index 0000000000000000000000000000000000000000..be5c08183066a87a1202febd88b6d2eaddb89857 --- /dev/null +++ b/scripts/cmake/packaging/PackagingMacros.cmake @@ -0,0 +1,64 @@ +# From http://www.cmake.org/pipermail/cmake/2012-September/052098.html +macro(ConfigureMacOSXBundle TARGET_NAME ICON_FILE_PATH) + + get_filename_component(ICON_FILE_NAME "${ICON_FILE_PATH}" NAME) + + set_target_properties(${TARGET_NAME} PROPERTIES + MACOSX_BUNDLE_INFO_STRING "${PROJECT_NAME} ${OGS_VERSION} - ${TARGET_NAME}" + MACOSX_BUNDLE_ICON_FILE ${ICON_FILE_NAME} + MACOSX_BUNDLE_GUI_IDENTIFIER "org.opengeosys" + MACOSX_BUNDLE_BUNDLE_NAME ${PROJECT_NAME}-${TARGET_NAME} + MACOSX_BUNDLE_SHORT_VERSION_STRING ${OGS_VERSION} + MACOSX_BUNDLE_LONG_VERSION_STRING "${PROJECT_NAME} ${OGS_VERSION}" + MACOSX_BUNDLE_BUNDLE_VERSION ${OGS_VERSION} + MACOSX_BUNDLE_COPYRIGHT "Copyright (c) 2012-2015, OpenGeoSys Community. All Rights Reserved." + ) + + SET_SOURCE_FILES_PROPERTIES(${ICON_FILE_PATH} PROPERTIES + MACOSX_PACKAGE_LOCATION Resources) +endmacro() + +# +# DownloadAdditionalFilesForPackaging +# ------- +# +# Downloads files (into build/AdditionalContent) and packages them. Order of arguments can be arbitrary. +# +# AddTest( +# URLS <multiple URLs> +# DESTINATION <install directory> +# PACKAGE_GROUP <name of the package to add these files to> # optional, defaults to ogs_extras +# EXECUTABLE <TRUE or FALSE, are these files executables?> # optional, defaults to FALSE +# ) +function(DownloadAdditionalFilesForPackaging) + + # parse args + set(options NONE) + set(oneValueArgs DESTINATION EXECUTABLE PACKAGE_GROUP) + set(multiValueArgs URLS) + cmake_parse_arguments(DownloadAdditionalFilesForPackaging + "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) + + # set defaults + if(NOT DownloadAdditionalFilesForPackaging_EXECUTABLE) + set(DownloadAdditionalFilesForPackaging_EXECUTABLE FALSE) + endif() + if(NOT DownloadAdditionalFilesForPackaging_PACKAGE_GROUP) + set(DownloadAdditionalFilesForPackaging_PACKAGE_GROUP ogs_extras) + endif() + + foreach(URL ${DownloadAdditionalFilesForPackaging_URLS}) + get_filename_component(FILE_NAME ${URL} NAME) + get_filename_component(FILE_EXTENSION ${URL} EXT) + set(FILE_PATH ${CMAKE_BINARY_DIR}/AdditionalContent/${FILE_NAME}) + if(NOT EXISTS ${FILE_PATH}) + file(DOWNLOAD ${URL} ${FILE_PATH} SHOW_PROGRESS) + endif() + if(EXE) + install(PROGRAMS ${FILE_PATH} DESTINATION ${DownloadAdditionalFilesForPackaging_DESTINATION} COMPONENT ${DownloadAdditionalFilesForPackaging_PACKAGE_GROUP}) + else() + install(FILES ${FILE_PATH} DESTINATION ${DownloadAdditionalFilesForPackaging_DESTINATION} COMPONENT ${DownloadAdditionalFilesForPackaging_PACKAGE_GROUP}) + endif() + endforeach() + +endfunction() diff --git a/scripts/cmake/packaging/PackagingWin.cmake b/scripts/cmake/packaging/PackagingWin.cmake new file mode 100644 index 0000000000000000000000000000000000000000..87a16027fc0e066bb6d8b0eeac5715d10fc3ebbc --- /dev/null +++ b/scripts/cmake/packaging/PackagingWin.cmake @@ -0,0 +1,21 @@ +SET(CMAKE_INSTALL_OPENMP_LIBRARIES ON) +INCLUDE(InstallRequiredSystemLibraries) +SET(CPACK_GENERATOR NSIS ZIP) +SET(CPACK_NSIS_MUI_ICON ${CMAKE_SOURCE_DIR}/scripts/packaging/ogs-de-icon.ico) +FILE(TO_NATIVE_PATH "${CMAKE_SOURCE_DIR}/Documentation/OpenGeoSys-Logo.bmp" BACKGROUND_IMAGE) +SET(CPACK_PACKAGE_ICON ${BACKGROUND_IMAGE}) +SET(CPACK_NSIS_INSTALLED_ICON_NAME ${CPACK_NSIS_MUI_ICON}) +SET(CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_DESCRIPTION_SUMMARY}") +SET(CPACK_NSIS_CONTACT "info@opengeosys.org") +SET(CPACK_NSIS_MODIFY_PATH OFF) +SET(CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL ON) +SET(CPACK_NSIS_HELP_LINK "http://docs.opengeosys.org/assets/files/Documentation/User_Manual.pdf") +SET(CPACK_NSIS_MENU_LINKS + "bin" "Executables folder" + "http://www.opengeosys.org" "Website" + "https://github.com/ufz/ogs" "Source code on GitFHub" + PARENT_SCOPE +) +IF(OGS_DOWNLOAD_ADDITIONAL_CONTENT) + SET(CPACK_NSIS_MENU_LINKS ${CPACK_NSIS_MENU_LINKS} "docs" "Documentation folder" PARENT_SCOPE) +ENDIF() diff --git a/scripts/packaging/ogs-de-icon.icns b/scripts/packaging/ogs-de-icon.icns new file mode 100644 index 0000000000000000000000000000000000000000..9f77f78ae7493dfcd67716b40dd1075b05634dd8 Binary files /dev/null and b/scripts/packaging/ogs-de-icon.icns differ diff --git a/scripts/packaging/ogs-de-icon.ico b/scripts/packaging/ogs-de-icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..4892cb8450d4428710a646e3c40a597bf7800868 Binary files /dev/null and b/scripts/packaging/ogs-de-icon.ico differ