summaryrefslogtreecommitdiffstats
path: root/Tests/FindPNG
diff options
context:
space:
mode:
authorSam Thursfield <sam.thursfield@codethink.co.uk>2016-01-19 17:43:05 (GMT)
committerBrad King <brad.king@kitware.com>2016-01-21 18:58:15 (GMT)
commit9b08c6233052fa1c3d393ee474c874f997491f7b (patch)
treebccb66d49c87c0f6533a2286ce235be0dcbcb5d2 /Tests/FindPNG
parentc13ed964012bcdf3765ada195db66930d6a0fcf9 (diff)
downloadCMake-9b08c6233052fa1c3d393ee474c874f997491f7b.zip
CMake-9b08c6233052fa1c3d393ee474c874f997491f7b.tar.gz
CMake-9b08c6233052fa1c3d393ee474c874f997491f7b.tar.bz2
FindPNG: Create an imported PNG::PNG target (#15911)
Imported targets are now the recommended way of dealing with external library dependencies. Add one for FindPNG and update documentation accordingly. Also add a test case activated by CMake_TEST_FindPNG.
Diffstat (limited to 'Tests/FindPNG')
-rw-r--r--Tests/FindPNG/CMakeLists.txt10
-rw-r--r--Tests/FindPNG/Test/CMakeLists.txt16
-rw-r--r--Tests/FindPNG/Test/main.c20
3 files changed, 46 insertions, 0 deletions
diff --git a/Tests/FindPNG/CMakeLists.txt b/Tests/FindPNG/CMakeLists.txt
new file mode 100644
index 0000000..c665b67
--- /dev/null
+++ b/Tests/FindPNG/CMakeLists.txt
@@ -0,0 +1,10 @@
+add_test(NAME FindPNG.Test COMMAND
+ ${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
+ --build-and-test
+ "${CMake_SOURCE_DIR}/Tests/FindPNG/Test"
+ "${CMake_BINARY_DIR}/Tests/FindPNG/Test"
+ ${build_generator_args}
+ --build-project TestFindPNG
+ --build-options ${build_options}
+ --test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
+ )
diff --git a/Tests/FindPNG/Test/CMakeLists.txt b/Tests/FindPNG/Test/CMakeLists.txt
new file mode 100644
index 0000000..ad50011
--- /dev/null
+++ b/Tests/FindPNG/Test/CMakeLists.txt
@@ -0,0 +1,16 @@
+cmake_minimum_required(VERSION 3.4)
+project(TestFindPNG C)
+include(CTest)
+
+find_package(PNG REQUIRED)
+
+add_definitions(-DCMAKE_EXPECTED_PNG_VERSION="${PNG_VERSION_STRING}")
+
+add_executable(test_tgt main.c)
+target_link_libraries(test_tgt PNG::PNG)
+add_test(NAME test_tgt COMMAND test_tgt)
+
+add_executable(test_var main.c)
+target_include_directories(test_var PRIVATE ${PNG_INCLUDE_DIRS})
+target_link_libraries(test_var PRIVATE ${PNG_LIBRARIES})
+add_test(NAME test_var COMMAND test_var)
diff --git a/Tests/FindPNG/Test/main.c b/Tests/FindPNG/Test/main.c
new file mode 100644
index 0000000..27e1478
--- /dev/null
+++ b/Tests/FindPNG/Test/main.c
@@ -0,0 +1,20 @@
+#include <assert.h>
+#include <string.h>
+#include <png.h>
+
+int main()
+{
+ png_uint_32 png_version;
+ char png_version_string[16];
+
+ png_version = png_access_version_number ();
+
+ snprintf (png_version_string, 16, "%i.%i.%i",
+ png_version / 10000,
+ (png_version % 10000) / 100,
+ png_version % 100);
+
+ assert (strcmp(png_version_string, CMAKE_EXPECTED_PNG_VERSION) == 0);
+
+ return 0;
+}