From a8cade5ed7090c704aed53871fb664a0fe07af54 Mon Sep 17 00:00:00 2001 From: Andreas Sturmlechner Date: Sat, 21 Apr 2018 20:07:09 +0200 Subject: [PATCH 1/3] Use GNUInstallDirs --- CMakeLists.txt | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index be57fe90c..1a54446fb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -65,6 +65,8 @@ INCLUDE(BALLCompilerSpecific) # Determine BALL configuration INCLUDE(BALLConfiguration) +INCLUDE(GNUInstallDirs) + # We do not have a Component-based installer in MacOS IF(NOT APPLE) INCLUDE(BALLComponents) @@ -473,20 +475,20 @@ SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin") ## These variables are used in all install-targets IF (NOT APPLE) - SET(BALL_RUNTIME_INSTALL_DIRECTORY "bin") - SET(BALL_LIBRARY_INSTALL_DIRECTORY "lib") - SET(BALL_ARCHIVE_INSTALL_DIRECTORY "lib") - SET(BALL_HEADER_INSTALL_DIRECTORY ".") - SET(BALL_DATA_INSTALL_DIRECTORY "share/BALL") - SET(BALL_DOCUMENTATION_INSTALL_DIRECTORY "share/BALL/doc") - SET(BALL_TOOLS_INSTALL_DIRECTORY "bin/BALLTools") + SET(BALL_RUNTIME_INSTALL_DIRECTORY ${CMAKE_INSTALL_BINDIR}) + SET(BALL_LIBRARY_INSTALL_DIRECTORY ${CMAKE_INSTALL_LIBDIR}) + SET(BALL_ARCHIVE_INSTALL_DIRECTORY ${CMAKE_INSTALL_LIBDIR}) + SET(BALL_HEADER_INSTALL_DIRECTORY ${CMAKE_INSTALL_INCLUDEDIR}) + SET(BALL_DATA_INSTALL_DIRECTORY ${CMAKE_INSTALL_DATAROOTDIR}/BALL) + SET(BALL_DOCUMENTATION_INSTALL_DIRECTORY ${CMAKE_INSTALL_DOCDIR}) + SET(BALL_TOOLS_INSTALL_DIRECTORY ${CMAKE_INSTALL_BINDIR}/BALLTools) IF(WIN32) SET(BALL_PYTHON_INSTALL_DIRECTORY "bin") SET(BALL_PLUGIN_INSTALL_DIRECTORY "bin") ELSE() - SET(BALL_PYTHON_INSTALL_DIRECTORY "lib") - SET(BALL_PLUGIN_INSTALL_DIRECTORY "lib") + SET(BALL_PYTHON_INSTALL_DIRECTORY ${CMAKE_INSTALL_LIBDIR}) + SET(BALL_PLUGIN_INSTALL_DIRECTORY ${CMAKE_INSTALL_LIBDIR}) ENDIF() ENDIF() @@ -710,21 +712,21 @@ IF(NOT APPLE) ## care of data files and headers IF (NOT "${CMAKE_INSTALL_PREFIX}" STREQUAL ".") ### Install the data directories - INSTALL(DIRECTORY data DESTINATION "${BALL_DATA_INSTALL_DIRECTORY}" COMPONENT ${COMPONENT_LIBBALL}) + INSTALL(DIRECTORY data/ DESTINATION "${BALL_DATA_INSTALL_DIRECTORY}" COMPONENT ${COMPONENT_LIBBALL}) ### Install the includes - INSTALL(DIRECTORY include DESTINATION "${BALL_HEADER_INSTALL_DIRECTORY}" COMPONENT ${COMPONENT_LIBBALL_DEV}) + INSTALL(DIRECTORY include/ DESTINATION "${BALL_HEADER_INSTALL_DIRECTORY}" COMPONENT ${COMPONENT_LIBBALL_DEV}) ENDIF() ## The configured files have to be copied in any case INSTALL(FILES ${PROJECT_BINARY_DIR}/include/BALL/CONFIG/config.h - DESTINATION "${BALL_HEADER_INSTALL_DIRECTORY}/include/BALL/CONFIG" + DESTINATION "${BALL_HEADER_INSTALL_DIRECTORY}/BALL/CONFIG" COMPONENT ${COMPONENT_LIBBALL_DEV} ) INSTALL(FILES ${PROJECT_BINARY_DIR}/include/BALL/PYTHON/BALLPythonConfig.h - DESTINATION "${BALL_HEADER_INSTALL_DIRECTORY}/include/BALL/PYTHON" + DESTINATION "${BALL_HEADER_INSTALL_DIRECTORY}/BALL/PYTHON" COMPONENT ${COMPONENT_LIBBALL_DEV} ) @@ -866,7 +868,7 @@ EXPORT(PACKAGE BALL) # Generate CMake package configuration for BALL installation IF(NOT APPLE) # Installation path for BALL CMake package configuration files - SET(BALL_CMAKE_EXPORT_PATH "lib/cmake/BALL" CACHE PATH "Path to the cmake package configuration files") + SET(BALL_CMAKE_EXPORT_PATH ${CMAKE_INSTALL_LIBDIR}/cmake/BALL CACHE PATH "Path to the cmake package configuration files") LIST(REMOVE_ITEM BALL_INCLUDE_DIRS "${PROJECT_BINARY_DIR}/include") LIST(REMOVE_ITEM BALL_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}/include") -- 2.17.0 From 17cbef40ad91cf051ca83b1ccf53dd2ccb22fc8d Mon Sep 17 00:00:00 2001 From: Andreas Sturmlechner Date: Sat, 21 Apr 2018 21:20:01 +0200 Subject: [PATCH 2/3] Drop superfluous cmake variables --- CMakeLists.txt | 34 +++++++------------ cmake/BALLDoc.cmake | 6 ++-- source/APPLICATIONS/BALLVIEW/CMakeLists.txt | 4 +-- source/EXTENSIONS/BALLAXY/CMakeLists.txt | 2 +- source/EXTENSIONS/JUPYTER/CMakeLists.txt | 2 +- source/EXTENSIONS/PRESENTABALL/CMakeLists.txt | 2 +- source/PYTHON/EXTENSIONS/CMakeLists.txt | 12 +++---- 7 files changed, 27 insertions(+), 35 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1a54446fb..9b9f3513b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -475,14 +475,6 @@ SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin") ## These variables are used in all install-targets IF (NOT APPLE) - SET(BALL_RUNTIME_INSTALL_DIRECTORY ${CMAKE_INSTALL_BINDIR}) - SET(BALL_LIBRARY_INSTALL_DIRECTORY ${CMAKE_INSTALL_LIBDIR}) - SET(BALL_ARCHIVE_INSTALL_DIRECTORY ${CMAKE_INSTALL_LIBDIR}) - SET(BALL_HEADER_INSTALL_DIRECTORY ${CMAKE_INSTALL_INCLUDEDIR}) - SET(BALL_DATA_INSTALL_DIRECTORY ${CMAKE_INSTALL_DATAROOTDIR}/BALL) - SET(BALL_DOCUMENTATION_INSTALL_DIRECTORY ${CMAKE_INSTALL_DOCDIR}) - SET(BALL_TOOLS_INSTALL_DIRECTORY ${CMAKE_INSTALL_BINDIR}/BALLTools) - IF(WIN32) SET(BALL_PYTHON_INSTALL_DIRECTORY "bin") SET(BALL_PLUGIN_INSTALL_DIRECTORY "bin") @@ -693,18 +685,18 @@ IF(NOT APPLE) INSTALL(TARGETS BALL EXPORT BALLExportGroup COMPONENT "${COMPONENT_LIBBALL}" - RUNTIME DESTINATION "${BALL_RUNTIME_INSTALL_DIRECTORY}" - LIBRARY DESTINATION "${BALL_LIBRARY_INSTALL_DIRECTORY}" - ARCHIVE DESTINATION "${BALL_ARCHIVE_INSTALL_DIRECTORY}" + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" ) IF(BALL_HAS_VIEW) INSTALL(TARGETS VIEW EXPORT BALLExportGroup COMPONENT "${COMPONENT_LIBVIEW}" - RUNTIME DESTINATION "${BALL_RUNTIME_INSTALL_DIRECTORY}" - LIBRARY DESTINATION "${BALL_LIBRARY_INSTALL_DIRECTORY}" - ARCHIVE DESTINATION "${BALL_ARCHIVE_INSTALL_DIRECTORY}" + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" ) ENDIF() @@ -712,21 +704,21 @@ IF(NOT APPLE) ## care of data files and headers IF (NOT "${CMAKE_INSTALL_PREFIX}" STREQUAL ".") ### Install the data directories - INSTALL(DIRECTORY data/ DESTINATION "${BALL_DATA_INSTALL_DIRECTORY}" COMPONENT ${COMPONENT_LIBBALL}) + INSTALL(DIRECTORY data/ DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/BALL COMPONENT ${COMPONENT_LIBBALL}) ### Install the includes - INSTALL(DIRECTORY include/ DESTINATION "${BALL_HEADER_INSTALL_DIRECTORY}" COMPONENT ${COMPONENT_LIBBALL_DEV}) + INSTALL(DIRECTORY include/ DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" COMPONENT ${COMPONENT_LIBBALL_DEV}) ENDIF() ## The configured files have to be copied in any case INSTALL(FILES ${PROJECT_BINARY_DIR}/include/BALL/CONFIG/config.h - DESTINATION "${BALL_HEADER_INSTALL_DIRECTORY}/BALL/CONFIG" + DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/BALL/CONFIG" COMPONENT ${COMPONENT_LIBBALL_DEV} ) INSTALL(FILES ${PROJECT_BINARY_DIR}/include/BALL/PYTHON/BALLPythonConfig.h - DESTINATION "${BALL_HEADER_INSTALL_DIRECTORY}/BALL/PYTHON" + DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/BALL/PYTHON" COMPONENT ${COMPONENT_LIBBALL_DEV} ) @@ -744,14 +736,14 @@ IF(NOT APPLE) FOREACH(LIB ${BALL_DEP_OPT_DLLS}) STRING(TOLOWER "${LIB}" LOWER_LIB) INSTALL(FILES "${LIB}" - DESTINATION "${BALL_RUNTIME_INSTALL_DIRECTORY}" + DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT ${COMPONENT_LIBBALL}) ENDFOREACH() IF(QT_DEPLOY_EXECUTABLE) INSTALL(CODE - "EXECUTE_PROCESS(COMMAND ${QT_DEPLOY_EXECUTABLE} \$\{CMAKE_INSTALL_PREFIX\}/${BALL_RUNTIME_INSTALL_DIRECTORY}/BALL.dll) - EXECUTE_PROCESS(COMMAND ${QT_DEPLOY_EXECUTABLE} \$\{CMAKE_INSTALL_PREFIX\}/${BALL_RUNTIME_INSTALL_DIRECTORY}/VIEW.dll)" + "EXECUTE_PROCESS(COMMAND ${QT_DEPLOY_EXECUTABLE} \$\{CMAKE_INSTALL_PREFIX\}/${CMAKE_INSTALL_BINDIR}/BALL.dll) + EXECUTE_PROCESS(COMMAND ${QT_DEPLOY_EXECUTABLE} \$\{CMAKE_INSTALL_PREFIX\}/${CMAKE_INSTALL_BINDIR}/VIEW.dll)" COMPONENT "${COMPONENT_LIBBALL}") ENDIF() ENDIF() diff --git a/cmake/BALLDoc.cmake b/cmake/BALLDoc.cmake index 061b9c95f..2d7c17466 100644 --- a/cmake/BALLDoc.cmake +++ b/cmake/BALLDoc.cmake @@ -20,7 +20,7 @@ ENDIF() IF(NOT APPLE) INSTALL(DIRECTORY "${PROJECT_SOURCE_DIR}/doc/examples/" - DESTINATION "${BALL_DOCUMENTATION_INSTALL_DIRECTORY}/EXAMPLES" + DESTINATION "${CMAKE_INSTALL_DOCDIR}/EXAMPLES" COMPONENT "${COMPONENT_DOCUMENTATION_EXAMPLES}") ENDIF() @@ -53,7 +53,7 @@ IF (DOXYGEN_FOUND) IF(NOT APPLE) INSTALL(DIRECTORY "${PROJECT_BINARY_DIR}/doc/html/" - DESTINATION "${BALL_DOCUMENTATION_INSTALL_DIRECTORY}/BALL" + DESTINATION "${CMAKE_INSTALL_DOCDIR}/BALL" COMPONENT "${COMPONENT_DOCUMENTATION_HTML}" ) ENDIF() @@ -107,7 +107,7 @@ IF (LATEX_COMPILER AND DVIPS_CONVERTER) IF(NOT APPLE) INSTALL(FILES ${PROJECT_BINARY_DIR}/doc/tutorial.pdf - DESTINATION "${BALL_DOCUMENTATION_INSTALL_DIRECTORY}/TUTORIAL" + DESTINATION "${CMAKE_INSTALL_DOCDIR}/TUTORIAL" COMPONENT "${COMPONENT_DOCUMENTATION_PDF}" OPTIONAL ) diff --git a/source/APPLICATIONS/BALLVIEW/CMakeLists.txt b/source/APPLICATIONS/BALLVIEW/CMakeLists.txt index b4b96c31c..5fd21ee68 100644 --- a/source/APPLICATIONS/BALLVIEW/CMakeLists.txt +++ b/source/APPLICATIONS/BALLVIEW/CMakeLists.txt @@ -59,13 +59,13 @@ IF(APPLE) ELSE() INSTALL(TARGETS BALLView COMPONENT "${COMPONENT_BALLVIEW}" - RUNTIME DESTINATION "${BALL_RUNTIME_INSTALL_DIRECTORY}" + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" BUNDLE DESTINATION "${BALL_BUNDLE_INSTALL_DIRECTORY}" ) IF(WIN32) IF(QT_DEPLOY_EXECUTABLE) - INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${QT_DEPLOY_EXECUTABLE} \$\{CMAKE_INSTALL_PREFIX\}/${BALL_RUNTIME_INSTALL_DIRECTORY}/BALLView.exe)" + INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${QT_DEPLOY_EXECUTABLE} \$\{CMAKE_INSTALL_PREFIX\}/${CMAKE_INSTALL_BINDIR}/BALLView.exe)" COMPONENT "${COMPONENT_BALLVIEW}") ENDIF() ENDIF() diff --git a/source/EXTENSIONS/BALLAXY/CMakeLists.txt b/source/EXTENSIONS/BALLAXY/CMakeLists.txt index 2fdfcbeed..1eed12c37 100644 --- a/source/EXTENSIONS/BALLAXY/CMakeLists.txt +++ b/source/EXTENSIONS/BALLAXY/CMakeLists.txt @@ -66,7 +66,7 @@ IF(NOT APPLE) IF(WIN32) IF(QT_DEPLOY_EXECUTABLE) - INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${QT_DEPLOY_EXECUTABLE} \$\{CMAKE_INSTALL_PREFIX\}/${BALL_RUNTIME_INSTALL_DIRECTORY}/pluginBALLaxy.dll)" + INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${QT_DEPLOY_EXECUTABLE} \$\{CMAKE_INSTALL_PREFIX\}/${CMAKE_INSTALL_BINDIR}/pluginBALLaxy.dll)" COMPONENT "Unspecified") ENDIF() ENDIF() diff --git a/source/EXTENSIONS/JUPYTER/CMakeLists.txt b/source/EXTENSIONS/JUPYTER/CMakeLists.txt index bb7e91921..24a459fbf 100644 --- a/source/EXTENSIONS/JUPYTER/CMakeLists.txt +++ b/source/EXTENSIONS/JUPYTER/CMakeLists.txt @@ -78,7 +78,7 @@ IF(NOT APPLE) IF(WIN32) IF(QT_DEPLOY_EXECUTABLE) - INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${QT_DEPLOY_EXECUTABLE} \$\{CMAKE_INSTALL_PREFIX\}/${BALL_RUNTIME_INSTALL_DIRECTORY}/pluginJupyter.dll)" + INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${QT_DEPLOY_EXECUTABLE} \$\{CMAKE_INSTALL_PREFIX\}/${CMAKE_INSTALL_BINDIR}/pluginJupyter.dll)" COMPONENT "Unspecified") ENDIF() ENDIF() diff --git a/source/EXTENSIONS/PRESENTABALL/CMakeLists.txt b/source/EXTENSIONS/PRESENTABALL/CMakeLists.txt index 8606f2f26..ad027fd03 100644 --- a/source/EXTENSIONS/PRESENTABALL/CMakeLists.txt +++ b/source/EXTENSIONS/PRESENTABALL/CMakeLists.txt @@ -66,7 +66,7 @@ IF(NOT APPLE) IF(WIN32) IF(QT_DEPLOY_EXECUTABLE) - INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${QT_DEPLOY_EXECUTABLE} \$\{CMAKE_INSTALL_PREFIX\}/${BALL_RUNTIME_INSTALL_DIRECTORY}/pluginPresentaBALL.dll)" + INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${QT_DEPLOY_EXECUTABLE} \$\{CMAKE_INSTALL_PREFIX\}/${CMAKE_INSTALL_BINDIR}/pluginPresentaBALL.dll)" COMPONENT "Unspecified") ENDIF() ENDIF() diff --git a/source/PYTHON/EXTENSIONS/CMakeLists.txt b/source/PYTHON/EXTENSIONS/CMakeLists.txt index 590e1de3a..374732519 100644 --- a/source/PYTHON/EXTENSIONS/CMakeLists.txt +++ b/source/PYTHON/EXTENSIONS/CMakeLists.txt @@ -49,15 +49,15 @@ IF(BALL_PYTHON_SUPPORT) IF(NOT APPLE) INSTALL(TARGETS BALLCoremodule COMPONENT "${COMPONENT_PYTHON_BINDINGS_BALL}" - RUNTIME DESTINATION ${BALL_RUNTIME_INSTALL_DIRECTORY} - LIBRARY DESTINATION ${BALL_LIBRARY_INSTALL_DIRECTORY} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ) IF(BALL_HAS_VIEW) INSTALL(TARGETS VIEWmodule COMPONENT "${COMPONENT_PYTHON_BINDINGS_VIEW}" - RUNTIME DESTINATION ${BALL_RUNTIME_INSTALL_DIRECTORY} - LIBRARY DESTINATION ${BALL_LIBRARY_INSTALL_DIRECTORY} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ) ENDIF() @@ -69,7 +69,7 @@ IF(BALL_PYTHON_SUPPORT) IF (WIN32) # INSTALL(FILES ${PYTHON_EXECUTABLE} # COMPONENT "${COMPONENT_PYTHON_BINDINGS_BALL}" - # DESTINATION "${BALL_RUNTIME_INSTALL_DIRECTORY}" + # DESTINATION "${CMAKE_INSTALL_BINDIR}" #) @@ -78,7 +78,7 @@ IF(BALL_PYTHON_SUPPORT) INSTALL(DIRECTORY "${PYTHON_SITE_PACKAGES_DIR}" COMPONENT "${COMPONENT_PYTHON_BINDINGS_BALL}" - DESTINATION "${BALL_RUNTIME_INSTALL_DIRECTORY}" + DESTINATION "${CMAKE_INSTALL_BINDIR}" ) ENDIF () ENDIF() -- 2.17.0 From 666ca19b00b14752e69c05600725724fb4f6d488 Mon Sep 17 00:00:00 2001 From: Andreas Sturmlechner Date: Sat, 21 Apr 2018 22:02:14 +0200 Subject: [PATCH 3/3] Install html doc into "html" dir --- cmake/BALLDoc.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/BALLDoc.cmake b/cmake/BALLDoc.cmake index 2d7c17466..a070613c8 100644 --- a/cmake/BALLDoc.cmake +++ b/cmake/BALLDoc.cmake @@ -53,7 +53,7 @@ IF (DOXYGEN_FOUND) IF(NOT APPLE) INSTALL(DIRECTORY "${PROJECT_BINARY_DIR}/doc/html/" - DESTINATION "${CMAKE_INSTALL_DOCDIR}/BALL" + DESTINATION "${CMAKE_INSTALL_DOCDIR}/html" COMPONENT "${COMPONENT_DOCUMENTATION_HTML}" ) ENDIF() -- 2.17.0