diff options
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() + | 
