diff options
author | Alex Merry <alex.merry@kde.org> | 2014-12-23 16:07:41 +0000 |
---|---|---|
committer | Alex Merry <alex.merry@kde.org> | 2014-12-28 15:44:32 +0000 |
commit | 25d2b72789090e99b0059784827e43a1a82aeafb (patch) | |
tree | 72b9b374a3b85a52a2b1f7147a4c762045fc74ac /tests | |
parent | 107f255620b6284de118aa1f358ab6cf99862ae9 (diff) | |
download | extra-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.txt | 49 | ||||
-rw-r--r-- | tests/KDEInstallDirsTest/qt_vars_defined/CMakeLists.txt | 177 | ||||
-rw-r--r-- | tests/KDEInstallDirsTest/relative_or_absolute/CMakeLists.txt | 27 | ||||
-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.txt | 179 | ||||
-rw-r--r-- | tests/KDEInstallDirsTest/usr_vars_defined/main.c | 4 | ||||
-rw-r--r-- | tests/KDEInstallDirsTest/var_list.cmake | 126 | ||||
-rw-r--r-- | tests/KDEInstallDirsTest/vars_defined/CMakeLists.txt | 175 | ||||
-rw-r--r-- | tests/KDEInstallDirsTest/vars_defined/main.c | 4 | ||||
-rw-r--r-- | tests/KDEInstallDirsTest/vars_in_sync/CMakeLists.txt | 168 | ||||
-rw-r--r-- | tests/test_helpers.cmake | 37 |
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() + |