aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorAlex Merry <alex.merry@kde.org>2014-12-23 16:07:41 +0000
committerAlex Merry <alex.merry@kde.org>2014-12-28 15:44:32 +0000
commit25d2b72789090e99b0059784827e43a1a82aeafb (patch)
tree72b9b374a3b85a52a2b1f7147a4c762045fc74ac /tests
parent107f255620b6284de118aa1f358ab6cf99862ae9 (diff)
downloadextra-cmake-modules-25d2b72789090e99b0059784827e43a1a82aeafb.tar.gz
extra-cmake-modules-25d2b72789090e99b0059784827e43a1a82aeafb.tar.bz2
Refactor KDEInstallDirs tests.
REVIEW: 121646
Diffstat (limited to 'tests')
-rw-r--r--tests/CMakeLists.txt49
-rw-r--r--tests/KDEInstallDirsTest/qt_vars_defined/CMakeLists.txt177
-rw-r--r--tests/KDEInstallDirsTest/relative_or_absolute/CMakeLists.txt27
-rw-r--r--tests/KDEInstallDirsTest/relative_or_absolute/main.c (renamed from tests/KDEInstallDirsTest/qt_vars_defined/main.c)0
-rw-r--r--tests/KDEInstallDirsTest/usr_vars_defined/CMakeLists.txt179
-rw-r--r--tests/KDEInstallDirsTest/usr_vars_defined/main.c4
-rw-r--r--tests/KDEInstallDirsTest/var_list.cmake126
-rw-r--r--tests/KDEInstallDirsTest/vars_defined/CMakeLists.txt175
-rw-r--r--tests/KDEInstallDirsTest/vars_defined/main.c4
-rw-r--r--tests/KDEInstallDirsTest/vars_in_sync/CMakeLists.txt168
-rw-r--r--tests/test_helpers.cmake37
11 files changed, 242 insertions, 704 deletions
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index fe160b8c..3b83ca16 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -34,29 +34,52 @@ find_package(Qt5LinguistTools CONFIG)
add_test_macro(ExecuteCoreModules dummy)
add_test_macro(ExecuteKDEModules dummy)
-add_test_macro(KDEInstallDirsTest.vars_defined dummy)
+add_test_macro(KDEInstallDirsTest.relative_or_absolute dummy)
+add_test_variant(KDEInstallDirsTest.vars_in_sync_no_args
+ KDEInstallDirsTest.vars_in_sync dummy)
add_test_macro(KDEInstallDirsTest.not_cache_variable dummy)
-add_test_variant(KDEInstallDirsTest.vars_in_sync_no_args
+set(KDEInstallDirsTest.vars_in_sync_kde_arg_EXTRA_OPTIONS
+ --build-options -DKDE_INSTALL_BINDIR=altbin
+ -DBINDIR_expected_value=altbin
+ )
+add_test_variant(KDEInstallDirsTest.vars_in_sync_kde_arg
KDEInstallDirsTest.vars_in_sync dummy)
-set(KDEInstallDirsTest.vars_in_sync_args_EXTRA_OPTIONS
- --build-options -DCMAKE_INSTALL_DATADIR=altdata
- -DKDE_INSTALL_BINDIR=altbin
- -DLIB_INSTALL_DIR=altlib
+set(KDEInstallDirsTest.vars_in_sync_cmake_arg_EXTRA_OPTIONS
+ --build-options -DCMAKE_INSTALL_BINDIR=altbin
+ -DBINDIR_expected_value=altbin
)
-add_test_variant(KDEInstallDirsTest.vars_in_sync_args
+add_test_variant(KDEInstallDirsTest.vars_in_sync_cmake_arg
KDEInstallDirsTest.vars_in_sync dummy)
-set(KDEInstallDirsTest.usr_vars_defined_EXTRA_OPTIONS
- --build-options -DCMAKE_INSTALL_PREFIX=/usr)
-add_test_macro(KDEInstallDirsTest.usr_vars_defined dummy)
+set(KDEInstallDirsTest.vars_in_sync_oldstyle_arg_EXTRA_OPTIONS
+ --build-options -DBIN_INSTALL_DIR=altbin
+ -DBINDIR_expected_value=altbin
+ )
+add_test_variant(KDEInstallDirsTest.vars_in_sync_oldstyle_arg
+ KDEInstallDirsTest.vars_in_sync dummy)
+
+set(KDEInstallDirsTest.relative_or_absolute_usr_EXTRA_OPTIONS
+ --build-options -DCMAKE_INSTALL_PREFIX=/usr
+ -DAUTOSTARTDIR_should_be_absolute=TRUE
+ -DCONFDIR_should_be_absolute=TRUE
+ -DSYSCONFDIR_should_be_absolute=TRUE
+ )
+add_test_variant(KDEInstallDirsTest.relative_or_absolute_usr
+ KDEInstallDirsTest.relative_or_absolute dummy)
find_package(Qt5Core QUIET)
if (TARGET Qt5::qmake)
- set(KDEInstallDirsTest.qt_vars_defined_EXTRA_OPTIONS
- --build-options -DKDE_INSTALL_USE_QT_SYS_PATHS=ON)
- add_test_macro(KDEInstallDirsTest.qt_vars_defined dummy)
+ set(KDEInstallDirsTest.relative_or_absolute_qt_EXTRA_OPTIONS
+ --build-options -DKDE_INSTALL_USE_QT_SYS_PATHS=TRUE
+ -DPLUGINDIR_should_be_absolute=TRUE
+ -DQMLDIR_should_be_absolute=TRUE
+ -DQTPLUGINDIR_should_be_absolute=TRUE
+ -DQTQUICKIMPORTSDIR_should_be_absolute=TRUE
+ )
+ add_test_variant(KDEInstallDirsTest.relative_or_absolute_qt
+ KDEInstallDirsTest.relative_or_absolute dummy)
endif ()
add_test_macro(FindModules dummy)
diff --git a/tests/KDEInstallDirsTest/qt_vars_defined/CMakeLists.txt b/tests/KDEInstallDirsTest/qt_vars_defined/CMakeLists.txt
deleted file mode 100644
index 910a0ede..00000000
--- a/tests/KDEInstallDirsTest/qt_vars_defined/CMakeLists.txt
+++ /dev/null
@@ -1,177 +0,0 @@
-project(KDEInstallDirs.vars_defined)
-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(misc_vars
- CMAKE_INSTALL_DEFAULT_COMPONENT_NAME
- INSTALL_TARGETS_DEFAULT_ARGS
- KF5_INSTALL_TARGETS_DEFAULT_ARGS
-)
-
-set(relative_path_vars
- # old-style variables
- AUTOSTART_INSTALL_DIR
- BIN_INSTALL_DIR
- CMAKECONFIG_INSTALL_PREFIX
- CONFIG_INSTALL_DIR
- DATA_INSTALL_DIR
- DBUS_INTERFACES_INSTALL_DIR
- DBUS_SERVICES_INSTALL_DIR
- DBUS_SYSTEM_SERVICES_INSTALL_DIR
- EXEC_INSTALL_PREFIX
- HTML_INSTALL_DIR
- ICON_INSTALL_DIR
- INCLUDE_INSTALL_DIR
- KCFG_INSTALL_DIR
- KCONF_UPDATE_INSTALL_DIR
- KF5_DATA_INSTALL_DIR
- KF5_INCLUDE_INSTALL_DIR
- KF5_LIBEXEC_INSTALL_DIR
- KNOTIFYRC_INSTALL_DIR
- KXMLGUI_INSTALL_DIR
- LIBEXEC_INSTALL_DIR
- LIB_INSTALL_DIR
- LOCALE_INSTALL_DIR
- MAN_INSTALL_DIR
- SBIN_INSTALL_DIR
- SERVICES_INSTALL_DIR
- SERVICETYPES_INSTALL_DIR
- SHARE_INSTALL_PREFIX
- SOUND_INSTALL_DIR
- SYSCONF_INSTALL_DIR
- TEMPLATES_INSTALL_DIR
- WALLPAPER_INSTALL_DIR
- XDG_APPS_INSTALL_DIR
- XDG_DIRECTORY_INSTALL_DIR
- XDG_MIME_INSTALL_DIR
-
- # new-style variables
- CMAKE_INSTALL_APPDIR
- CMAKE_INSTALL_AUTOSTARTDIR
- CMAKE_INSTALL_BINDIR
- CMAKE_INSTALL_CMAKEPACKAGEDIR
- CMAKE_INSTALL_CONFDIR
- CMAKE_INSTALL_DATADIR
- CMAKE_INSTALL_DATADIR_KF5
- CMAKE_INSTALL_DATAROOTDIR
- CMAKE_INSTALL_DBUSDIR
- CMAKE_INSTALL_DBUSINTERFACEDIR
- CMAKE_INSTALL_DBUSSERVICEDIR
- CMAKE_INSTALL_DBUSSYSTEMSERVICEDIR
- CMAKE_INSTALL_DESKTOPDIR
- CMAKE_INSTALL_DOCBUNDLEDIR
- CMAKE_INSTALL_EXECROOTDIR
- CMAKE_INSTALL_ICONDIR
- CMAKE_INSTALL_INCLUDEDIR
- CMAKE_INSTALL_INCLUDEDIR_KF5
- CMAKE_INSTALL_INFODIR
- CMAKE_INSTALL_KCFGDIR
- CMAKE_INSTALL_KCONFUPDATEDIR
- CMAKE_INSTALL_KNOTIFY5RCDIR
- CMAKE_INSTALL_KXMLGUI5DIR
- CMAKE_INSTALL_KSERVICES5DIR
- CMAKE_INSTALL_KSERVICETYPES5DIR
- CMAKE_INSTALL_LIBDIR
- CMAKE_INSTALL_LIBEXECDIR
- CMAKE_INSTALL_LIBEXECDIR_KF5
- CMAKE_INSTALL_LOCALEDIR
- CMAKE_INSTALL_LOCALSTATEDIR
- CMAKE_INSTALL_MANDIR
- CMAKE_INSTALL_MIMEDIR
- CMAKE_INSTALL_METAINFODIR
- CMAKE_INSTALL_SBINDIR
- CMAKE_INSTALL_SHAREDSTATEDIR
- CMAKE_INSTALL_SOUNDDIR
- CMAKE_INSTALL_SYSCONFDIR
- CMAKE_INSTALL_TEMPLATEDIR
- CMAKE_INSTALL_WALLPAPERDIR
-)
-
-set(absolute_path_vars
- IMPORTS_INSTALL_DIR
- PLUGIN_INSTALL_DIR
- QML_INSTALL_DIR
- QT_PLUGIN_INSTALL_DIR
-
- CMAKE_INSTALL_PLUGINDIR
- CMAKE_INSTALL_QMLDIR
- CMAKE_INSTALL_QTPLUGINDIR
- CMAKE_INSTALL_QTQUICKIMPORTSDIR
-
- CMAKE_INSTALL_FULL_APPDIR
- CMAKE_INSTALL_FULL_AUTOSTARTDIR
- CMAKE_INSTALL_FULL_BINDIR
- CMAKE_INSTALL_FULL_CMAKEPACKAGEDIR
- CMAKE_INSTALL_FULL_CONFDIR
- CMAKE_INSTALL_FULL_DATADIR
- CMAKE_INSTALL_FULL_DATADIR_KF5
- CMAKE_INSTALL_FULL_DATAROOTDIR
- CMAKE_INSTALL_FULL_DBUSDIR
- CMAKE_INSTALL_FULL_DBUSINTERFACEDIR
- CMAKE_INSTALL_FULL_DBUSSERVICEDIR
- CMAKE_INSTALL_FULL_DBUSSYSTEMSERVICEDIR
- CMAKE_INSTALL_FULL_DESKTOPDIR
- CMAKE_INSTALL_FULL_DOCBUNDLEDIR
- CMAKE_INSTALL_FULL_EXECROOTDIR
- CMAKE_INSTALL_FULL_ICONDIR
- CMAKE_INSTALL_FULL_INCLUDEDIR
- CMAKE_INSTALL_FULL_INCLUDEDIR_KF5
- CMAKE_INSTALL_FULL_INFODIR
- CMAKE_INSTALL_FULL_KCFGDIR
- CMAKE_INSTALL_FULL_KCONFUPDATEDIR
- CMAKE_INSTALL_FULL_KNOTIFY5RCDIR
- CMAKE_INSTALL_FULL_KXMLGUI5DIR
- CMAKE_INSTALL_FULL_KSERVICES5DIR
- CMAKE_INSTALL_FULL_KSERVICETYPES5DIR
- CMAKE_INSTALL_FULL_LIBDIR
- CMAKE_INSTALL_FULL_LIBEXECDIR
- CMAKE_INSTALL_FULL_LIBEXECDIR_KF5
- CMAKE_INSTALL_FULL_LOCALEDIR
- CMAKE_INSTALL_FULL_LOCALSTATEDIR
- CMAKE_INSTALL_FULL_MANDIR
- CMAKE_INSTALL_FULL_MIMEDIR
- CMAKE_INSTALL_FULL_METAINFODIR
- CMAKE_INSTALL_FULL_PLUGINDIR
- CMAKE_INSTALL_FULL_QMLDIR
- CMAKE_INSTALL_FULL_QTPLUGINDIR
- CMAKE_INSTALL_FULL_QTQUICKIMPORTSDIR
- CMAKE_INSTALL_FULL_SBINDIR
- CMAKE_INSTALL_FULL_SHAREDSTATEDIR
- CMAKE_INSTALL_FULL_SOUNDDIR
- CMAKE_INSTALL_FULL_SYSCONFDIR
- CMAKE_INSTALL_FULL_TEMPLATEDIR
- CMAKE_INSTALL_FULL_WALLPAPERDIR
-)
-if(APPLE)
- # The default bundle directory is an absolute path
- list(APPEND absolute_path_vars
- BUNDLE_INSTALL_DIR
- CMAKE_INSTALL_BUNDLEDIR
- CMAKE_INSTALL_FULL_BUNDLEDIR
- )
-endif()
-
-foreach(variable ${misc_vars} ${relative_path_vars} ${absolute_path_vars})
- if(NOT DEFINED ${variable})
- message(SEND_ERROR "${variable} is not defined.")
- endif()
-endforeach()
-
-foreach(variable ${relative_path_vars})
- if(IS_ABSOLUTE ${${variable}})
- message(SEND_ERROR "${variable} (${${variable}}) should be a relative path, but is absolute.")
- endif()
-endforeach()
-
-foreach(variable ${absolute_path_vars})
- if(NOT IS_ABSOLUTE ${${variable}})
- message(SEND_ERROR "${variable} (${${variable}}) should be an absolute path, but is relative.")
- endif()
-endforeach()
-
-add_executable(dummy main.c)
-set_target_properties(dummy PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
diff --git a/tests/KDEInstallDirsTest/relative_or_absolute/CMakeLists.txt b/tests/KDEInstallDirsTest/relative_or_absolute/CMakeLists.txt
new file mode 100644
index 00000000..1a7a7e7b
--- /dev/null
+++ b/tests/KDEInstallDirsTest/relative_or_absolute/CMakeLists.txt
@@ -0,0 +1,27 @@
+project(KDEInstallDirs.relative_or_absolute)
+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)
+
+include(../var_list.cmake)
+include(../../test_helpers.cmake)
+
+if(APPLE)
+ # The default bundle directory is an absolute path
+ set(BUNDLEDIR_should_be_absolute TRUE)
+endif()
+
+foreach(suffix ${var_suffixes})
+ if(${suffix}_should_be_absolute)
+ assert_var_absolute_path(KDE_INSTALL_${suffix})
+ else()
+ assert_var_relative_path(KDE_INSTALL_${suffix})
+ endif()
+ assert_var_absolute_path(KDE_INSTALL_FULL_${suffix})
+endforeach()
+
+add_executable(dummy main.c)
+set_target_properties(dummy PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
diff --git a/tests/KDEInstallDirsTest/qt_vars_defined/main.c b/tests/KDEInstallDirsTest/relative_or_absolute/main.c
index c13815ce..c13815ce 100644
--- a/tests/KDEInstallDirsTest/qt_vars_defined/main.c
+++ b/tests/KDEInstallDirsTest/relative_or_absolute/main.c
diff --git a/tests/KDEInstallDirsTest/usr_vars_defined/CMakeLists.txt b/tests/KDEInstallDirsTest/usr_vars_defined/CMakeLists.txt
deleted file mode 100644
index aea07604..00000000
--- a/tests/KDEInstallDirsTest/usr_vars_defined/CMakeLists.txt
+++ /dev/null
@@ -1,179 +0,0 @@
-# In this test, CMAKE_INSTALL_DIR=/usr
-
-project(KDEInstallDirs.vars_defined)
-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(misc_vars
- CMAKE_INSTALL_DEFAULT_COMPONENT_NAME
- INSTALL_TARGETS_DEFAULT_ARGS
- KF5_INSTALL_TARGETS_DEFAULT_ARGS
-)
-
-set(relative_path_vars
- # old-style variables
- BIN_INSTALL_DIR
- CMAKECONFIG_INSTALL_PREFIX
- DATA_INSTALL_DIR
- DBUS_INTERFACES_INSTALL_DIR
- DBUS_SERVICES_INSTALL_DIR
- DBUS_SYSTEM_SERVICES_INSTALL_DIR
- EXEC_INSTALL_PREFIX
- HTML_INSTALL_DIR
- ICON_INSTALL_DIR
- IMPORTS_INSTALL_DIR
- INCLUDE_INSTALL_DIR
- KCFG_INSTALL_DIR
- KCONF_UPDATE_INSTALL_DIR
- KF5_DATA_INSTALL_DIR
- KF5_INCLUDE_INSTALL_DIR
- KF5_LIBEXEC_INSTALL_DIR
- KNOTIFYRC_INSTALL_DIR
- KXMLGUI_INSTALL_DIR
- LIBEXEC_INSTALL_DIR
- LIB_INSTALL_DIR
- LOCALE_INSTALL_DIR
- MAN_INSTALL_DIR
- PLUGIN_INSTALL_DIR
- QML_INSTALL_DIR
- QT_PLUGIN_INSTALL_DIR
- SBIN_INSTALL_DIR
- SERVICES_INSTALL_DIR
- SERVICETYPES_INSTALL_DIR
- SHARE_INSTALL_PREFIX
- SOUND_INSTALL_DIR
- TEMPLATES_INSTALL_DIR
- WALLPAPER_INSTALL_DIR
- XDG_APPS_INSTALL_DIR
- XDG_DIRECTORY_INSTALL_DIR
- XDG_MIME_INSTALL_DIR
-
- # new-style variables
- CMAKE_INSTALL_APPDIR
- CMAKE_INSTALL_BINDIR
- CMAKE_INSTALL_CMAKEPACKAGEDIR
- CMAKE_INSTALL_DATADIR
- CMAKE_INSTALL_DATADIR_KF5
- CMAKE_INSTALL_DATAROOTDIR
- CMAKE_INSTALL_DBUSDIR
- CMAKE_INSTALL_DBUSINTERFACEDIR
- CMAKE_INSTALL_DBUSSERVICEDIR
- CMAKE_INSTALL_DBUSSYSTEMSERVICEDIR
- CMAKE_INSTALL_DESKTOPDIR
- CMAKE_INSTALL_DOCBUNDLEDIR
- CMAKE_INSTALL_EXECROOTDIR
- CMAKE_INSTALL_ICONDIR
- CMAKE_INSTALL_INCLUDEDIR
- CMAKE_INSTALL_INCLUDEDIR_KF5
- CMAKE_INSTALL_INFODIR
- CMAKE_INSTALL_KCFGDIR
- CMAKE_INSTALL_KCONFUPDATEDIR
- CMAKE_INSTALL_KNOTIFY5RCDIR
- CMAKE_INSTALL_KXMLGUI5DIR
- CMAKE_INSTALL_KSERVICES5DIR
- CMAKE_INSTALL_KSERVICETYPES5DIR
- CMAKE_INSTALL_LIBDIR
- CMAKE_INSTALL_LIBEXECDIR
- CMAKE_INSTALL_LIBEXECDIR_KF5
- CMAKE_INSTALL_LOCALEDIR
- CMAKE_INSTALL_LOCALSTATEDIR
- CMAKE_INSTALL_MANDIR
- CMAKE_INSTALL_MIMEDIR
- CMAKE_INSTALL_METAINFODIR
- CMAKE_INSTALL_PLUGINDIR
- CMAKE_INSTALL_QMLDIR
- CMAKE_INSTALL_QTPLUGINDIR
- CMAKE_INSTALL_QTQUICKIMPORTSDIR
- CMAKE_INSTALL_SBINDIR
- CMAKE_INSTALL_SHAREDSTATEDIR
- CMAKE_INSTALL_SOUNDDIR
- CMAKE_INSTALL_TEMPLATEDIR
- CMAKE_INSTALL_WALLPAPERDIR
-)
-
-set(absolute_path_vars
- AUTOSTART_INSTALL_DIR
- CONFIG_INSTALL_DIR
- SYSCONF_INSTALL_DIR
-
- CMAKE_INSTALL_AUTOSTARTDIR
- CMAKE_INSTALL_CONFDIR
- CMAKE_INSTALL_SYSCONFDIR
-
- CMAKE_INSTALL_FULL_APPDIR
- CMAKE_INSTALL_FULL_AUTOSTARTDIR
- CMAKE_INSTALL_FULL_BINDIR
- CMAKE_INSTALL_FULL_CMAKEPACKAGEDIR
- CMAKE_INSTALL_FULL_CONFDIR
- CMAKE_INSTALL_FULL_DATADIR
- CMAKE_INSTALL_FULL_DATADIR_KF5
- CMAKE_INSTALL_FULL_DATAROOTDIR
- CMAKE_INSTALL_FULL_DBUSDIR
- CMAKE_INSTALL_FULL_DBUSINTERFACEDIR
- CMAKE_INSTALL_FULL_DBUSSERVICEDIR
- CMAKE_INSTALL_FULL_DBUSSYSTEMSERVICEDIR
- CMAKE_INSTALL_FULL_DESKTOPDIR
- CMAKE_INSTALL_FULL_DOCBUNDLEDIR
- CMAKE_INSTALL_FULL_EXECROOTDIR
- CMAKE_INSTALL_FULL_ICONDIR
- CMAKE_INSTALL_FULL_INCLUDEDIR
- CMAKE_INSTALL_FULL_INCLUDEDIR_KF5
- CMAKE_INSTALL_FULL_INFODIR
- CMAKE_INSTALL_FULL_KCFGDIR
- CMAKE_INSTALL_FULL_KCONFUPDATEDIR
- CMAKE_INSTALL_FULL_KNOTIFY5RCDIR
- CMAKE_INSTALL_FULL_KXMLGUI5DIR
- CMAKE_INSTALL_FULL_KSERVICES5DIR
- CMAKE_INSTALL_FULL_KSERVICETYPES5DIR
- CMAKE_INSTALL_FULL_LIBDIR
- CMAKE_INSTALL_FULL_LIBEXECDIR
- CMAKE_INSTALL_FULL_LIBEXECDIR_KF5
- CMAKE_INSTALL_FULL_LOCALEDIR
- CMAKE_INSTALL_FULL_LOCALSTATEDIR
- CMAKE_INSTALL_FULL_MANDIR
- CMAKE_INSTALL_FULL_MIMEDIR
- CMAKE_INSTALL_FULL_METAINFODIR
- CMAKE_INSTALL_FULL_PLUGINDIR
- CMAKE_INSTALL_FULL_QMLDIR
- CMAKE_INSTALL_FULL_QTPLUGINDIR
- CMAKE_INSTALL_FULL_QTQUICKIMPORTSDIR
- CMAKE_INSTALL_FULL_SBINDIR
- CMAKE_INSTALL_FULL_SHAREDSTATEDIR
- CMAKE_INSTALL_FULL_SOUNDDIR
- CMAKE_INSTALL_FULL_SYSCONFDIR
- CMAKE_INSTALL_FULL_TEMPLATEDIR
- CMAKE_INSTALL_FULL_WALLPAPERDIR
-)
-if(APPLE)
- # The default bundle directory is an absolute path
- list(APPEND absolute_path_vars
- BUNDLE_INSTALL_DIR
- CMAKE_INSTALL_BUNDLEDIR
- CMAKE_INSTALL_FULL_BUNDLEDIR
- )
-endif()
-
-foreach(variable ${misc_vars} ${relative_path_vars} ${absolute_path_vars})
- if(NOT DEFINED ${variable})
- message(SEND_ERROR "${variable} is not defined.")
- endif()
-endforeach()
-
-foreach(variable ${relative_path_vars})
- if(IS_ABSOLUTE ${${variable}})
- message(SEND_ERROR "${variable} (${${variable}}) should be a relative path, but is absolute.")
- endif()
-endforeach()
-
-foreach(variable ${absolute_path_vars})
- if(NOT IS_ABSOLUTE ${${variable}})
- message(SEND_ERROR "${variable} (${${variable}}) should be an absolute path, but is relative.")
- endif()
-endforeach()
-
-add_executable(dummy main.c)
-set_target_properties(dummy PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
diff --git a/tests/KDEInstallDirsTest/usr_vars_defined/main.c b/tests/KDEInstallDirsTest/usr_vars_defined/main.c
deleted file mode 100644
index c13815ce..00000000
--- a/tests/KDEInstallDirsTest/usr_vars_defined/main.c
+++ /dev/null
@@ -1,4 +0,0 @@
-int main()
-{
- return 0;
-}
diff --git a/tests/KDEInstallDirsTest/var_list.cmake b/tests/KDEInstallDirsTest/var_list.cmake
new file mode 100644
index 00000000..39bd90fa
--- /dev/null
+++ b/tests/KDEInstallDirsTest/var_list.cmake
@@ -0,0 +1,126 @@
+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)
+if(APPLE)
+ list(APPEND var_suffixes BUNDLEDIR)
+endif()
+
+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)
+endif()
+
+set(_gnu_install_dirs_suffixes
+ BINDIR
+ SBINDIR
+ LIBEXECDIR
+ SYSCONFDIR
+ SHAREDSTATEDIR
+ LOCALSTATEDIR
+ LIBDIR
+ INCLUDEDIR
+ OLDINCLUDEDIR
+ DATAROOTDIR
+ DATADIR
+ INFODIR
+ LOCALEDIR
+ MANDIR
+ DOCDIR)
+
+if(KDE_INSTALL_DIRS_NO_CMAKE_VARIABLES)
+ foreach(suffix ${var_suffixes})
+ set(should_set_CMAKE_INSTALL_${suffix} FALSE)
+ endforeach()
+elseif(KDE_INSTALL_DIRS_NO_DEPRECATED)
+ foreach(suffix ${var_suffixes})
+ set(should_set_CMAKE_INSTALL_${suffix} FALSE)
+ endforeach()
+ foreach(suffix ${_gnu_install_dirs_suffixes})
+ set(should_set_CMAKE_INSTALL_${suffix} TRUE)
+ endforeach()
+else()
+ foreach(suffix ${var_suffixes})
+ set(should_set_CMAKE_INSTALL_${suffix} TRUE)
+ endforeach()
+endif()
+
+unset(_gnu_install_dirs_suffixes)
+
diff --git a/tests/KDEInstallDirsTest/vars_defined/CMakeLists.txt b/tests/KDEInstallDirsTest/vars_defined/CMakeLists.txt
deleted file mode 100644
index ab46cee1..00000000
--- a/tests/KDEInstallDirsTest/vars_defined/CMakeLists.txt
+++ /dev/null
@@ -1,175 +0,0 @@
-project(KDEInstallDirs.vars_defined)
-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(misc_vars
- CMAKE_INSTALL_DEFAULT_COMPONENT_NAME
- INSTALL_TARGETS_DEFAULT_ARGS
- KF5_INSTALL_TARGETS_DEFAULT_ARGS
-)
-
-set(relative_path_vars
- # old-style variables
- AUTOSTART_INSTALL_DIR
- BIN_INSTALL_DIR
- CMAKECONFIG_INSTALL_PREFIX
- CONFIG_INSTALL_DIR
- DATA_INSTALL_DIR
- DBUS_INTERFACES_INSTALL_DIR
- DBUS_SERVICES_INSTALL_DIR
- DBUS_SYSTEM_SERVICES_INSTALL_DIR
- EXEC_INSTALL_PREFIX
- HTML_INSTALL_DIR
- ICON_INSTALL_DIR
- IMPORTS_INSTALL_DIR
- INCLUDE_INSTALL_DIR
- KCFG_INSTALL_DIR
- KCONF_UPDATE_INSTALL_DIR
- KF5_DATA_INSTALL_DIR
- KF5_INCLUDE_INSTALL_DIR
- KF5_LIBEXEC_INSTALL_DIR
- KNOTIFYRC_INSTALL_DIR
- KXMLGUI_INSTALL_DIR
- LIBEXEC_INSTALL_DIR
- LIB_INSTALL_DIR
- LOCALE_INSTALL_DIR
- MAN_INSTALL_DIR
- PLUGIN_INSTALL_DIR
- QML_INSTALL_DIR
- QT_PLUGIN_INSTALL_DIR
- SBIN_INSTALL_DIR
- SERVICES_INSTALL_DIR
- SERVICETYPES_INSTALL_DIR
- SHARE_INSTALL_PREFIX
- SOUND_INSTALL_DIR
- SYSCONF_INSTALL_DIR
- TEMPLATES_INSTALL_DIR
- WALLPAPER_INSTALL_DIR
- XDG_APPS_INSTALL_DIR
- XDG_DIRECTORY_INSTALL_DIR
- XDG_MIME_INSTALL_DIR
-
- # new-style variables
- CMAKE_INSTALL_APPDIR
- CMAKE_INSTALL_AUTOSTARTDIR
- CMAKE_INSTALL_BINDIR
- CMAKE_INSTALL_CMAKEPACKAGEDIR
- CMAKE_INSTALL_CONFDIR
- CMAKE_INSTALL_DATADIR
- CMAKE_INSTALL_DATADIR_KF5
- CMAKE_INSTALL_DATAROOTDIR
- CMAKE_INSTALL_DBUSDIR
- CMAKE_INSTALL_DBUSINTERFACEDIR
- CMAKE_INSTALL_DBUSSERVICEDIR
- CMAKE_INSTALL_DBUSSYSTEMSERVICEDIR
- CMAKE_INSTALL_DESKTOPDIR
- CMAKE_INSTALL_DOCBUNDLEDIR
- CMAKE_INSTALL_EXECROOTDIR
- CMAKE_INSTALL_ICONDIR
- CMAKE_INSTALL_INCLUDEDIR
- CMAKE_INSTALL_INCLUDEDIR_KF5
- CMAKE_INSTALL_INFODIR
- CMAKE_INSTALL_KCFGDIR
- CMAKE_INSTALL_KCONFUPDATEDIR
- CMAKE_INSTALL_KNOTIFY5RCDIR
- CMAKE_INSTALL_KXMLGUI5DIR
- CMAKE_INSTALL_KSERVICES5DIR
- CMAKE_INSTALL_KSERVICETYPES5DIR
- CMAKE_INSTALL_LIBDIR
- CMAKE_INSTALL_LIBEXECDIR
- CMAKE_INSTALL_LIBEXECDIR_KF5
- CMAKE_INSTALL_LOCALEDIR
- CMAKE_INSTALL_LOCALSTATEDIR
- CMAKE_INSTALL_MANDIR
- CMAKE_INSTALL_MIMEDIR
- CMAKE_INSTALL_METAINFODIR
- CMAKE_INSTALL_PLUGINDIR
- CMAKE_INSTALL_QMLDIR
- CMAKE_INSTALL_QTPLUGINDIR
- CMAKE_INSTALL_QTQUICKIMPORTSDIR
- CMAKE_INSTALL_SBINDIR
- CMAKE_INSTALL_SHAREDSTATEDIR
- CMAKE_INSTALL_SOUNDDIR
- CMAKE_INSTALL_SYSCONFDIR
- CMAKE_INSTALL_TEMPLATEDIR
- CMAKE_INSTALL_WALLPAPERDIR
-)
-
-set(absolute_path_vars
- CMAKE_INSTALL_FULL_APPDIR
- CMAKE_INSTALL_FULL_AUTOSTARTDIR
- CMAKE_INSTALL_FULL_BINDIR
- CMAKE_INSTALL_FULL_CMAKEPACKAGEDIR
- CMAKE_INSTALL_FULL_CONFDIR
- CMAKE_INSTALL_FULL_DATADIR
- CMAKE_INSTALL_FULL_DATADIR_KF5
- CMAKE_INSTALL_FULL_DATAROOTDIR
- CMAKE_INSTALL_FULL_DBUSDIR
- CMAKE_INSTALL_FULL_DBUSINTERFACEDIR
- CMAKE_INSTALL_FULL_DBUSSERVICEDIR
- CMAKE_INSTALL_FULL_DBUSSYSTEMSERVICEDIR
- CMAKE_INSTALL_FULL_DESKTOPDIR
- CMAKE_INSTALL_FULL_DOCBUNDLEDIR
- CMAKE_INSTALL_FULL_EXECROOTDIR
- CMAKE_INSTALL_FULL_ICONDIR
- CMAKE_INSTALL_FULL_INCLUDEDIR
- CMAKE_INSTALL_FULL_INCLUDEDIR_KF5
- CMAKE_INSTALL_FULL_INFODIR
- CMAKE_INSTALL_FULL_KCFGDIR
- CMAKE_INSTALL_FULL_KCONFUPDATEDIR
- CMAKE_INSTALL_FULL_KNOTIFY5RCDIR
- CMAKE_INSTALL_FULL_KXMLGUI5DIR
- CMAKE_INSTALL_FULL_KSERVICES5DIR
- CMAKE_INSTALL_FULL_KSERVICETYPES5DIR
- CMAKE_INSTALL_FULL_LIBDIR
- CMAKE_INSTALL_FULL_LIBEXECDIR
- CMAKE_INSTALL_FULL_LIBEXECDIR_KF5
- CMAKE_INSTALL_FULL_LOCALEDIR
- CMAKE_INSTALL_FULL_LOCALSTATEDIR
- CMAKE_INSTALL_FULL_MANDIR
- CMAKE_INSTALL_FULL_MIMEDIR
- CMAKE_INSTALL_FULL_METAINFODIR
- CMAKE_INSTALL_FULL_PLUGINDIR
- CMAKE_INSTALL_FULL_QMLDIR
- CMAKE_INSTALL_FULL_QTPLUGINDIR
- CMAKE_INSTALL_FULL_QTQUICKIMPORTSDIR
- CMAKE_INSTALL_FULL_SBINDIR
- CMAKE_INSTALL_FULL_SHAREDSTATEDIR
- CMAKE_INSTALL_FULL_SOUNDDIR
- CMAKE_INSTALL_FULL_SYSCONFDIR
- CMAKE_INSTALL_FULL_TEMPLATEDIR
- CMAKE_INSTALL_FULL_WALLPAPERDIR
-)
-if(APPLE)
- # The default bundle directory is an absolute path
- list(APPEND absolute_path_vars
- BUNDLE_INSTALL_DIR
- CMAKE_INSTALL_BUNDLEDIR
- CMAKE_INSTALL_FULL_BUNDLEDIR
- )
-endif()
-
-foreach(variable ${misc_vars} ${relative_path_vars} ${absolute_path_vars})
- if(NOT DEFINED ${variable})
- message(SEND_ERROR "${variable} is not defined.")
- endif()
-endforeach()
-
-foreach(variable ${relative_path_vars})
- if(IS_ABSOLUTE ${${variable}})
- message(SEND_ERROR "${variable} (${${variable}}) should be a relative path, but is absolute.")
- endif()
-endforeach()
-
-foreach(variable ${absolute_path_vars})
- if(NOT IS_ABSOLUTE ${${variable}})
- message(SEND_ERROR "${variable} (${${variable}}) should be an absolute path, but is relative.")
- endif()
-endforeach()
-
-add_executable(dummy main.c)
-set_target_properties(dummy PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
diff --git a/tests/KDEInstallDirsTest/vars_defined/main.c b/tests/KDEInstallDirsTest/vars_defined/main.c
deleted file mode 100644
index c13815ce..00000000
--- a/tests/KDEInstallDirsTest/vars_defined/main.c
+++ /dev/null
@@ -1,4 +0,0 @@
-int main()
-{
- return 0;
-}
diff --git a/tests/KDEInstallDirsTest/vars_in_sync/CMakeLists.txt b/tests/KDEInstallDirsTest/vars_in_sync/CMakeLists.txt
index 4249ed0d..73e6db55 100644
--- a/tests/KDEInstallDirsTest/vars_in_sync/CMakeLists.txt
+++ b/tests/KDEInstallDirsTest/vars_in_sync/CMakeLists.txt
@@ -6,168 +6,32 @@ 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)
+include(../var_list.cmake)
+include(../../test_helpers.cmake)
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})
+ assert_var_defined(KDE_INSTALL_${suffix})
+ if(DEFINED ${suffix}_expected_value)
+ assert_vars_strequal(KDE_INSTALL_${suffix} ${suffix}_expected_value)
endif()
+ assert_var_defined(KDE_INSTALL_FULL_${suffix})
- 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)
+ if(should_set_CMAKE_INSTALL_${suffix})
+ assert_vars_strequal(CMAKE_INSTALL_${suffix} KDE_INSTALL_${suffix})
+ assert_vars_strequal(CMAKE_INSTALL_FULL_${suffix} KDE_INSTALL_FULL_${suffix})
endif()
- if(should_have_compat_var)
- assert_str_equal(${COMPAT_${suffix}} KDE_INSTALL_${suffix})
+
+ if(NOT KDE_INSTALL_DIRS_NO_DEPRECATED AND DEFINED compat_${suffix})
+ assert_vars_strequal(${compat_${suffix}} KDE_INSTALL_${suffix})
endif()
endforeach()
-assert_defined(KF5_INSTALL_TARGETS_DEFAULT_ARGS)
-assert_defined(KDE_INSTALL_TARGETS_DEFAULT_ARGS)
+assert_var_defined(KF5_INSTALL_TARGETS_DEFAULT_ARGS)
+assert_var_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)
+ assert_vars_strequal(INSTALL_TARGETS_DEFAULT_ARGS
+ KDE_INSTALL_TARGETS_DEFAULT_ARGS)
endif()
add_executable(dummy main.c)
diff --git a/tests/test_helpers.cmake b/tests/test_helpers.cmake
new file mode 100644
index 00000000..db4fc802
--- /dev/null
+++ b/tests/test_helpers.cmake
@@ -0,0 +1,37 @@
+macro(assert_var_defined varname)
+ if(NOT DEFINED ${varname})
+ message(SEND_ERROR "${varname} is not defined.")
+ endif()
+endmacro()
+
+macro(assert_vars_strequal varname exp_varname)
+ assert_var_defined(${varname})
+ if(NOT ${varname} STREQUAL ${exp_varname})
+ message(SEND_ERROR "${varname} is '${${varname}}', expecting '${${exp_varname}}'.")
+ endif()
+endmacro()
+
+macro(assert_var_str_value varname value)
+ assert_var_defined(${varname})
+ set(_value_var "${value}")
+ if(NOT ${varname} STREQUAL _value_var)
+ message(SEND_ERROR "${varname} is '${${varname}}', expecting '${value}'.")
+ endif()
+endmacro()
+
+macro(assert_var_relative_path varname)
+ if(NOT DEFINED ${varname})
+ message(SEND_ERROR "${varname} is not defined.")
+ elseif(IS_ABSOLUTE "${${varname}}")
+ message(SEND_ERROR "${varname} (${${varname}}) should be a relative path, but is absolute.")
+ endif()
+endmacro()
+
+macro(assert_var_absolute_path varname)
+ if(NOT DEFINED ${varname})
+ message(SEND_ERROR "${varname} is not defined.")
+ elseif(NOT IS_ABSOLUTE "${${varname}}")
+ message(SEND_ERROR "${varname} (${${varname}}) should be an absolute path, but is relative.")
+ endif()
+endmacro()
+