aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorFriedrich W. H. Kossebau <kossebau@kde.org>2021-05-14 20:20:45 +0200
committerChristophe Giboudeaux <christophe@krop.fr>2021-05-15 17:30:53 +0000
commitc28008a109cdd23c3de4a3fdceb12629431b03f1 (patch)
tree61eee05645d9d2003c357f6d424d4bd669b6e2a5 /tests
parent4d307aaf0735ce40b9631b8161001a8c224bd5bf (diff)
downloadextra-cmake-modules-c28008a109cdd23c3de4a3fdceb12629431b03f1.tar.gz
extra-cmake-modules-c28008a109cdd23c3de4a3fdceb12629431b03f1.tar.bz2
ECMAddAppIcon: support target as argument
Diffstat (limited to 'tests')
-rw-r--r--tests/ECMAddAppIconTest/CMakeLists.txt83
-rw-r--r--tests/ECMAddAppIconTest/main.cpp4
2 files changed, 82 insertions, 5 deletions
diff --git a/tests/ECMAddAppIconTest/CMakeLists.txt b/tests/ECMAddAppIconTest/CMakeLists.txt
index 6782c63d..a8a9d1b1 100644
--- a/tests/ECMAddAppIconTest/CMakeLists.txt
+++ b/tests/ECMAddAppIconTest/CMakeLists.txt
@@ -14,33 +14,38 @@ elseif(APPLE)
set(icon_extension_to_test "icns")
endif()
-#### Test 1: ecm_add_app_icon with only regular icons and no OUTFILE_BASENAME ####
+#### Test 1: ecm_add_app_icon with only regular icons and no OUTFILE_BASENAME, for sources var ####
set(ICONS_1 16-category-name.png 128-category-name.png)
ecm_add_app_icon(OUT_1 ICONS ${ICONS_1})
+list(LENGTH OUT_1 out_count)
+
if(WIN32 OR APPLE)
- list(LENGTH OUT_1 out_count)
if(out_count EQUAL 0)
message(FATAL_ERROR "ecm_add_app_icon() hasn't produced anything")
endif()
-
if(NOT OUT_1 MATCHES "OUT_1.${icon_extension_to_test}")
message(FATAL_ERROR "ecm_add_app_icon() did not fall back to target name for icon name: ${OUT_1}")
endif()
+else()
+ if(NOT out_count EQUAL 0)
+ message(FATAL_ERROR "ecm_add_app_icon() produced something unexpectedly.")
+ endif()
endif()
add_custom_target(t_1 ALL DEPENDS ${OUT_1})
list(APPEND OUT "${OUT_1}")
-#### Test 2: ecm_add_app_icon with regular and sidebar icons and OUTFILE_BASENAME set ####
+#### Test 2: ecm_add_app_icon with regular and sidebar icons and OUTFILE_BASENAME set, for sources var ####
set(ICONS_2 16-category-name.png 128-category-name.png)
set(SIDEBAR_ICONS_2 16-category-name-sidebar.png 128-category-name-sidebar.png)
ecm_add_app_icon(OUT_2 ICONS ${ICONS_2} SIDEBAR_ICONS ${SIDEBAR_ICONS_2} OUTFILE_BASENAME "SuperBasename")
+list(LENGTH OUT_2 out_count)
+
if(WIN32 OR APPLE)
- list(LENGTH OUT_2 out_count)
if(out_count EQUAL 0)
message(FATAL_ERROR "ecm_add_app_icon() hasn't produced anything")
endif()
@@ -48,6 +53,10 @@ if(WIN32 OR APPLE)
if(NOT OUT_2 MATCHES "SuperBasename.${icon_extension_to_test}")
message(FATAL_ERROR "ecm_add_app_icon() did not respect OUTFILE_BASENAME: ${OUT_2}")
endif()
+else()
+ if(NOT out_count EQUAL 0)
+ message(FATAL_ERROR "ecm_add_app_icon() produced something unexpectedly.")
+ endif()
endif()
if(APPLE)
@@ -60,5 +69,69 @@ endif()
add_custom_target(t_2 ALL DEPENDS ${OUT_2})
list(APPEND OUT "${OUT_2}")
+#### Test 3: ecm_add_app_icon with only regular icons and no OUTFILE_BASENAME, for target ####
+set(ICONS_3 16-category-name.png 128-category-name.png)
+
+add_executable(app_3)
+target_sources(app_3 PRIVATE main.cpp)
+
+ecm_add_app_icon(app_3 ICONS ${ICONS_1})
+
+get_target_property(OUT_3 app_3 SOURCES)
+list(REMOVE_ITEM OUT_3 main.cpp)
+list(LENGTH OUT_3 out_count)
+
+if(WIN32 OR APPLE)
+ if(out_count EQUAL 0)
+ message(FATAL_ERROR "ecm_add_app_icon() hasn't produced anything")
+ endif()
+
+ if(NOT OUT_3 MATCHES "app_3.${icon_extension_to_test}")
+ message(FATAL_ERROR "ecm_add_app_icon() did not fall back to target name for icon name: ${OUT_1}")
+ endif()
+else()
+ if(NOT out_count EQUAL 0)
+ message(FATAL_ERROR "ecm_add_app_icon() produced something unexpectedly.")
+ endif()
+endif()
+
+list(APPEND OUT "${OUT_3}")
+
+#### Test 4: ecm_add_app_icon with regular and sidebar icons and OUTFILE_BASENAME set, for target ####
+set(ICONS_4 16-category-name.png 128-category-name.png)
+set(SIDEBAR_ICONS_4 16-category-name-sidebar.png 128-category-name-sidebar.png)
+
+add_executable(app_4)
+target_sources(app_4 PRIVATE main.cpp)
+
+ecm_add_app_icon(app_4 ICONS ${ICONS_4} SIDEBAR_ICONS ${SIDEBAR_ICONS_4} OUTFILE_BASENAME "SuperBasename4")
+
+get_target_property(OUT_4 app_4 SOURCES)
+list(REMOVE_ITEM OUT_4 main.cpp)
+list(LENGTH OUT_4 out_count)
+
+if(WIN32 OR APPLE)
+ if(out_count EQUAL 0)
+ message(FATAL_ERROR "ecm_add_app_icon() hasn't produced anything")
+ endif()
+
+ if(NOT OUT_4 MATCHES "SuperBasename4.${icon_extension_to_test}")
+ message(FATAL_ERROR "ecm_add_app_icon() did not respect OUTFILE_BASENAME: ${OUT_4}")
+ endif()
+else()
+ if(NOT out_count EQUAL 0)
+ message(FATAL_ERROR "ecm_add_app_icon() produced something unexpectedly.")
+ endif()
+endif()
+
+if(APPLE)
+ list(APPEND expected_icons "icon_16x16.png" "icon_128x128.png" "sidebar_16x16.png" "sidebar_32x32.png")
+ foreach(expected_icon ${expected_icons})
+ list(APPEND OUT_4 "${CMAKE_CURRENT_BINARY_DIR}/SuperBasename4.iconset/${expected_icon}")
+ endforeach()
+endif()
+
+list(APPEND OUT "${OUT_4}")
+
#### this will be run by CTest ####
configure_file(check_files.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/check_files.cmake" @ONLY)
diff --git a/tests/ECMAddAppIconTest/main.cpp b/tests/ECMAddAppIconTest/main.cpp
new file mode 100644
index 00000000..0f45ea60
--- /dev/null
+++ b/tests/ECMAddAppIconTest/main.cpp
@@ -0,0 +1,4 @@
+int main(int, char**)
+{
+ return 0;
+}