aboutsummaryrefslogtreecommitdiff
path: root/tests/KDEInstallDirsTest
diff options
context:
space:
mode:
authorAlex Merry <alex.merry@kde.org>2014-12-17 20:33:32 +0000
committerAlex Merry <alex.merry@kde.org>2014-12-28 15:43:52 +0000
commit107f255620b6284de118aa1f358ab6cf99862ae9 (patch)
treed3f023bd38a2ff748ed0ebf4439493bff6a8ee03 /tests/KDEInstallDirsTest
parent69939eef4f828e881edd387b129128cb252f7ab3 (diff)
downloadextra-cmake-modules-107f255620b6284de118aa1f358ab6cf99862ae9.tar.gz
extra-cmake-modules-107f255620b6284de118aa1f358ab6cf99862ae9.tar.bz2
Make KDEInstallDirs provide KDE_INSTALL_* variables.
Creating variables whose names start with CMAKE_ is a bad idea for modules distributed outside CMake itself. Since the module is called KDEInstallDirs, having a KDE_INSTALL_ prefix for the variables is clear and intuitive. Both CMAKE_INSTALL_* variables and the older KDELibs4-compatible variables are provided, unless KDE_INSTALL_DIRS_NO_DEPRECATED is set to TRUE before the module is included. Even then, the CMAKE_INSTALL_* variables provided by the GNUInstallDirs module will still be set and understood (for compatibility with that module), unless KDE_INSTALL_DIRS_NO_CMAKE_VARIABLES is set to TRUE. REVIEW: 121646
Diffstat (limited to 'tests/KDEInstallDirsTest')
-rw-r--r--tests/KDEInstallDirsTest/not_cache_variable/CMakeLists.txt39
-rw-r--r--tests/KDEInstallDirsTest/vars_in_sync/CMakeLists.txt174
-rw-r--r--tests/KDEInstallDirsTest/vars_in_sync/main.c4
3 files changed, 215 insertions, 2 deletions
diff --git a/tests/KDEInstallDirsTest/not_cache_variable/CMakeLists.txt b/tests/KDEInstallDirsTest/not_cache_variable/CMakeLists.txt
index ea62d95b..8ddbb27a 100644
--- a/tests/KDEInstallDirsTest/not_cache_variable/CMakeLists.txt
+++ b/tests/KDEInstallDirsTest/not_cache_variable/CMakeLists.txt
@@ -4,9 +4,44 @@ cmake_minimum_required(VERSION 2.8)
set(ECM_KDE_MODULE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../kde-modules)
set(ECM_MODULE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../modules)
+set(CMAKE_MODULE_PATH "${ECM_KDE_MODULE_DIR}")
-set(CMAKE_INSTALL_LIBDIR "foo")
-include(${ECM_KDE_MODULE_DIR}/KDEInstallDirs.cmake)
+set(KDE_INSTALL_BINDIR "altbin")
+set(CMAKE_INSTALL_DATADIR "altdata")
+set(LIB_INSTALL_DIR "altlib")
+
+include(KDEInstallDirs)
+
+
+include(../var_list.cmake)
+include(../../test_helpers.cmake)
+
+message(STATUS "Checking result of setting KDE_INSTALL_BINDIR")
+assert_var_str_value(KDE_INSTALL_BINDIR "altbin")
+if(should_set_CMAKE_INSTALL_BINDIR)
+ assert_var_str_value(CMAKE_INSTALL_BINDIR "altbin")
+endif()
+if(NOT KDE_INSTALL_DIRS_NO_DEPRECATED)
+ assert_var_str_value(BIN_INSTALL_DIR "altbin")
+endif()
+
+if(should_set_CMAKE_INSTALL_DATADIR)
+ message(STATUS "Checking result of setting CMAKE_INSTALL_DATADIR")
+ assert_var_str_value(KDE_INSTALL_DATADIR "altdata")
+ assert_var_str_value(CMAKE_INSTALL_DATADIR "altdata")
+ if(NOT KDE_INSTALL_DIRS_NO_DEPRECATED)
+ assert_var_str_value(DATA_INSTALL_DIR "altdata")
+ endif()
+endif()
+
+if(NOT KDE_INSTALL_DIRS_NO_DEPRECATED)
+ message(STATUS "Checking result of setting LIB_INSTALL_DIR")
+ assert_var_str_value(KDE_INSTALL_LIBDIR "altlib")
+ if(should_set_CMAKE_INSTALL_LIBDIR)
+ assert_var_str_value(CMAKE_INSTALL_LIBDIR "altlib")
+ endif()
+ assert_var_str_value(LIB_INSTALL_DIR "altlib")
+endif()
add_executable(dummy main.c)
set_target_properties(dummy PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
diff --git a/tests/KDEInstallDirsTest/vars_in_sync/CMakeLists.txt b/tests/KDEInstallDirsTest/vars_in_sync/CMakeLists.txt
new file mode 100644
index 00000000..4249ed0d
--- /dev/null
+++ b/tests/KDEInstallDirsTest/vars_in_sync/CMakeLists.txt
@@ -0,0 +1,174 @@
+project(KDEInstallDirs.vars_in_sync)
+cmake_minimum_required(VERSION 2.8.12)
+
+set(ECM_KDE_MODULE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../kde-modules)
+set(ECM_MODULE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../modules)
+set(CMAKE_MODULE_PATH "${ECM_KDE_MODULE_DIR}")
+include(KDEInstallDirs)
+
+set(var_suffixes
+ APPDIR
+ AUTOSTARTDIR
+ BINDIR
+ CMAKEPACKAGEDIR
+ CONFDIR
+ DATADIR
+ DATADIR_KF5
+ DATAROOTDIR
+ DBUSDIR
+ DBUSINTERFACEDIR
+ DBUSSERVICEDIR
+ DBUSSYSTEMSERVICEDIR
+ DESKTOPDIR
+ DOCBUNDLEDIR
+ EXECROOTDIR
+ ICONDIR
+ INCLUDEDIR
+ INCLUDEDIR_KF5
+ INFODIR
+ KCFGDIR
+ KCONFUPDATEDIR
+ KNOTIFY5RCDIR
+ KXMLGUI5DIR
+ KSERVICES5DIR
+ KSERVICETYPES5DIR
+ LIBDIR
+ LIBEXECDIR
+ LIBEXECDIR_KF5
+ LOCALEDIR
+ LOCALSTATEDIR
+ MANDIR
+ MIMEDIR
+ METAINFODIR
+ PLUGINDIR
+ QMLDIR
+ QTPLUGINDIR
+ QTQUICKIMPORTSDIR
+ SBINDIR
+ SHAREDSTATEDIR
+ SOUNDDIR
+ SYSCONFDIR
+ TEMPLATEDIR
+ WALLPAPERDIR)
+
+set(COMPAT_APPDIR XDG_APPS_INSTALL_DIR)
+set(COMPAT_AUTOSTARTDIR AUTOSTART_INSTALL_DIR)
+set(COMPAT_BINDIR BIN_INSTALL_DIR)
+set(COMPAT_CMAKEPACKAGEDIR CMAKECONFIG_INSTALL_PREFIX)
+set(COMPAT_CONFDIR CONFIG_INSTALL_DIR)
+set(COMPAT_DATADIR DATA_INSTALL_DIR)
+set(COMPAT_DATADIR_KF5 KF5_DATA_INSTALL_DIR)
+set(COMPAT_DATAROOTDIR SHARE_INSTALL_PREFIX)
+set(COMPAT_DBUSINTERFACEDIR DBUS_INTERFACES_INSTALL_DIR)
+set(COMPAT_DBUSSERVICEDIR DBUS_SERVICES_INSTALL_DIR)
+set(COMPAT_DBUSSYSTEMSERVICEDIR DBUS_SYSTEM_SERVICES_INSTALL_DIR)
+set(COMPAT_DESKTOPDIR XDG_DIRECTORY_INSTALL_DIR)
+set(COMPAT_DOCBUNDLEDIR HTML_INSTALL_DIR)
+set(COMPAT_EXECROOTDIR EXEC_INSTALL_PREFIX)
+set(COMPAT_ICONDIR ICON_INSTALL_DIR)
+set(COMPAT_INCLUDEDIR INCLUDE_INSTALL_DIR)
+set(COMPAT_INCLUDEDIR_KF5 KF5_INCLUDE_INSTALL_DIR)
+set(COMPAT_KCFGDIR KCFG_INSTALL_DIR)
+set(COMPAT_KCONFUPDATEDIR KCONF_UPDATE_INSTALL_DIR)
+set(COMPAT_KNOTIFY5RCDIR KNOTIFYRC_INSTALL_DIR)
+set(COMPAT_KXMLGUI5DIR KXMLGUI_INSTALL_DIR)
+set(COMPAT_KSERVICES5DIR SERVICES_INSTALL_DIR)
+set(COMPAT_KSERVICETYPES5DIR SERVICETYPES_INSTALL_DIR)
+set(COMPAT_LIBDIR LIB_INSTALL_DIR)
+set(COMPAT_LIBEXECDIR LIBEXEC_INSTALL_DIR)
+set(COMPAT_LIBEXECDIR_KF5 KF5_LIBEXEC_INSTALL_DIR)
+set(COMPAT_LOCALEDIR LOCALE_INSTALL_DIR)
+set(COMPAT_MANDIR MAN_INSTALL_DIR)
+set(COMPAT_MIMEDIR XDG_MIME_INSTALL_DIR)
+set(COMPAT_PLUGINDIR PLUGIN_INSTALL_DIR)
+set(COMPAT_QMLDIR QML_INSTALL_DIR)
+set(COMPAT_QTPLUGINDIR QT_PLUGIN_INSTALL_DIR)
+set(COMPAT_QTQUICKIMPORTSDIR IMPORTS_INSTALL_DIR)
+set(COMPAT_SBINDIR SBIN_INSTALL_DIR)
+set(COMPAT_SOUNDDIR SOUND_INSTALL_DIR)
+set(COMPAT_SYSCONFDIR SYSCONF_INSTALL_DIR)
+set(COMPAT_TEMPLATEDIR TEMPLATES_INSTALL_DIR)
+set(COMPAT_WALLPAPERDIR WALLPAPER_INSTALL_DIR)
+if(APPLE)
+ set(COMPAT_BUNDLEDIR BUNDLE_INSTALL_DIR)
+ list(APPEND var_suffixes BUNDLEDIR)
+endif()
+
+set(gnu_install_dirs_suffixes
+ BINDIR
+ SBINDIR
+ LIBEXECDIR
+ SYSCONFDIR
+ SHAREDSTATEDIR
+ LOCALSTATEDIR
+ LIBDIR
+ INCLUDEDIR
+ OLDINCLUDEDIR
+ DATAROOTDIR
+ DATADIR
+ INFODIR
+ LOCALEDIR
+ MANDIR
+ DOCDIR)
+
+macro(assert_defined varname)
+ if(NOT DEFINED ${varname})
+ message(SEND_ERROR "${varname} is not defined.")
+ endif()
+endmacro()
+macro(assert_non_empty varname)
+ assert_defined(${varname})
+ if(NOT ${varname})
+ message(SEND_ERROR "${varname} is empty")
+ endif()
+endmacro()
+macro(assert_str_equal varname exp_varname)
+ assert_defined(${varname})
+ if(NOT ${varname} STREQUAL ${exp_varname})
+ message(SEND_ERROR "${varname} is '${${varname}}', expecting '${${exp_varname}}'.")
+ endif()
+endmacro()
+set(FOO bax)
+assert_defined(FOO)
+set(BAR bax)
+assert_str_equal(FOO BAR)
+
+foreach(suffix ${var_suffixes})
+ assert_defined(KDE_INSTALL_${suffix})
+ assert_defined(KDE_INSTALL_FULL_${suffix})
+
+ set(should_have_cmake_var TRUE)
+ if(KDE_INSTALL_DIRS_NO_CMAKE_VARIABLES)
+ set(should_have_cmake_var FALSE)
+ elseif(KDE_INSTALL_DIRS_NO_DEPRECATED)
+ list(FIND gnu_install_dirs_suffixes "${suffix}" _list_offset)
+ if(_list_offset EQUAL -1)
+ set(should_have_cmake_var FALSE)
+ endif()
+ endif()
+ if(should_have_cmake_var)
+ assert_str_equal(CMAKE_INSTALL_${suffix} KDE_INSTALL_${suffix})
+ assert_str_equal(CMAKE_INSTALL_FULL_${suffix} KDE_INSTALL_FULL_${suffix})
+ endif()
+
+ set(should_have_compat_var TRUE)
+ if(NOT DEFINED COMPAT_${suffix})
+ set(should_have_compat_var FALSE)
+ elseif(KDE_INSTALL_DIRS_NO_DEPRECATED)
+ set(should_have_compat_var FALSE)
+ endif()
+ if(should_have_compat_var)
+ assert_str_equal(${COMPAT_${suffix}} KDE_INSTALL_${suffix})
+ endif()
+endforeach()
+
+assert_defined(KF5_INSTALL_TARGETS_DEFAULT_ARGS)
+assert_defined(KDE_INSTALL_TARGETS_DEFAULT_ARGS)
+if(NOT KDE_INSTALL_DIRS_NO_CMAKE_VARIABLES AND
+ NOT KDE_INSTALL_DIRS_NO_DEPRECATED)
+ assert_str_equal(INSTALL_TARGETS_DEFAULT_ARGS
+ KDE_INSTALL_TARGETS_DEFAULT_ARGS)
+endif()
+
+add_executable(dummy main.c)
+set_target_properties(dummy PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
diff --git a/tests/KDEInstallDirsTest/vars_in_sync/main.c b/tests/KDEInstallDirsTest/vars_in_sync/main.c
new file mode 100644
index 00000000..c13815ce
--- /dev/null
+++ b/tests/KDEInstallDirsTest/vars_in_sync/main.c
@@ -0,0 +1,4 @@
+int main()
+{
+ return 0;
+}