diff options
author | Alex Neundorf <neundorf@kde.org> | 2011-08-16 20:31:26 (GMT) |
---|---|---|
committer | Alex Neundorf <neundorf@kde.org> | 2011-08-16 20:31:26 (GMT) |
commit | 626fc717c6a6fb880053e645b3f12805f60c102a (patch) | |
tree | 45cd140bb45fc2f0585a41c074cb062e8ccdd91b | |
parent | ec6982dc8cad04c72a6ab78b7f115ece65e812bd (diff) | |
download | CMake-626fc717c6a6fb880053e645b3f12805f60c102a.zip CMake-626fc717c6a6fb880053e645b3f12805f60c102a.tar.gz CMake-626fc717c6a6fb880053e645b3f12805f60c102a.tar.bz2 |
Much improved test, should now be executed on all UNIXes
Instead of relying on that some development package is installed on the
system, now a tiny library is built, which is the searched and used
during the test.
Alex
-rw-r--r-- | Tests/FindPackageModeMakefileTest/CMakeLists.txt | 24 | ||||
-rw-r--r-- | Tests/FindPackageModeMakefileTest/FindFoo.cmake.in | 8 | ||||
-rw-r--r-- | Tests/FindPackageModeMakefileTest/Makefile.in | 4 | ||||
-rw-r--r-- | Tests/FindPackageModeMakefileTest/foo.cpp | 4 | ||||
-rw-r--r-- | Tests/FindPackageModeMakefileTest/foo.h | 6 | ||||
-rw-r--r-- | Tests/FindPackageModeMakefileTest/main.cpp | 4 |
6 files changed, 33 insertions, 17 deletions
diff --git a/Tests/FindPackageModeMakefileTest/CMakeLists.txt b/Tests/FindPackageModeMakefileTest/CMakeLists.txt index d2c6be9..17f02b4 100644 --- a/Tests/FindPackageModeMakefileTest/CMakeLists.txt +++ b/Tests/FindPackageModeMakefileTest/CMakeLists.txt @@ -1,22 +1,20 @@ -if("${CMAKE_CXX_COMPILER_ID}" MATCHES GNU - OR "${CMAKE_CXX_COMPILER_ID}" MATCHES Intel - OR "${CMAKE_CXX_COMPILER_ID}" MATCHES Clang - OR "${CMAKE_CXX_COMPILER_ID}" MATCHES XL - OR "${CMAKE_CXX_COMPILER_ID}" MATCHES SunPro) - find_package(PNG) +# the test program links against the png lib, so test first whether it exists +if(UNIX AND "${CMAKE_GENERATOR}" MATCHES "Makefile") - # the test program links against the png lib, so test first whether it exists - if(PNG_FOUND AND UNIX AND "${CMAKE_GENERATOR}" MATCHES "Makefile") + # build a library which we can search during the test + add_library(foo STATIC foo.cpp) - get_target_property(cmakeExecutable cmake LOCATION) + # configure a FindFoo.cmake so it knows where the library can be found + configure_file(FindFoo.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/FindFoo.cmake @ONLY) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Makefile.in ${CMAKE_CURRENT_BINARY_DIR}/ConfMakefile @ONLY) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/main.cpp ${CMAKE_CURRENT_BINARY_DIR}/main.cpp COPYONLY) + # now set up the test: + get_target_property(cmakeExecutable cmake LOCATION) - add_test(FindPackageModeMakefileTest ${CMAKE_MAKE_PROGRAM} -f ${CMAKE_CURRENT_BINARY_DIR}/ConfMakefile ) + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Makefile.in ${CMAKE_CURRENT_BINARY_DIR}/ConfMakefile @ONLY) + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/main.cpp ${CMAKE_CURRENT_BINARY_DIR}/main.cpp COPYONLY) - endif() + add_test(FindPackageModeMakefileTest ${CMAKE_MAKE_PROGRAM} -f ${CMAKE_CURRENT_BINARY_DIR}/ConfMakefile ) endif() diff --git a/Tests/FindPackageModeMakefileTest/FindFoo.cmake.in b/Tests/FindPackageModeMakefileTest/FindFoo.cmake.in new file mode 100644 index 0000000..c6230ab --- /dev/null +++ b/Tests/FindPackageModeMakefileTest/FindFoo.cmake.in @@ -0,0 +1,8 @@ + +find_library(FOO_LIBRARY NAMES foo HINTS "@CMAKE_CURRENT_BINARY_DIR@" ) +find_path(FOO_INCLUDE_DIR NAMES foo.h HINTS "@CMAKE_CURRENT_SOURCE_DIR@" ) + +set(FOO_LIBRARIES ${FOO_LIBRARY}) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(Foo DEFAULT_MSG FOO_LIBRARY FOO_INCLUDE_DIR ) diff --git a/Tests/FindPackageModeMakefileTest/Makefile.in b/Tests/FindPackageModeMakefileTest/Makefile.in index 5e42305..6bcd9b6 100644 --- a/Tests/FindPackageModeMakefileTest/Makefile.in +++ b/Tests/FindPackageModeMakefileTest/Makefile.in @@ -1,10 +1,10 @@ all: clean pngtest main.o: main.cpp - "@CMAKE_CXX_COMPILER@" -c `"@cmakeExecutable@" --find-package -DNAME=PNG -DLANGUAGE=CXX -DCOMPILER_ID=@CMAKE_CXX_COMPILER_ID@ -DMODE=COMPILE` main.cpp + "@CMAKE_CXX_COMPILER@" -c `"@cmakeExecutable@" --find-package -DCMAKE_MODULE_PATH="@CMAKE_CURRENT_BINARY_DIR@" -DNAME=Foo -DLANGUAGE=CXX -DCOMPILER_ID=@CMAKE_CXX_COMPILER_ID@ -DMODE=COMPILE` main.cpp pngtest: main.o - "@CMAKE_CXX_COMPILER@" -o pngtest main.o `"@cmakeExecutable@" --find-package -DNAME=PNG -DLANGUAGE=CXX -DCOMPILER_ID=@CMAKE_CXX_COMPILER_ID@ -DMODE=LINK` + "@CMAKE_CXX_COMPILER@" -o pngtest main.o `"@cmakeExecutable@" --find-package -DCMAKE_MODULE_PATH="@CMAKE_CURRENT_BINARY_DIR@" -DNAME=Foo -DLANGUAGE=CXX -DCOMPILER_ID=@CMAKE_CXX_COMPILER_ID@ -DMODE=LINK` clean: rm -f *.o pngtest diff --git a/Tests/FindPackageModeMakefileTest/foo.cpp b/Tests/FindPackageModeMakefileTest/foo.cpp new file mode 100644 index 0000000..6aea226 --- /dev/null +++ b/Tests/FindPackageModeMakefileTest/foo.cpp @@ -0,0 +1,4 @@ +int foo() +{ + return 1477; +} diff --git a/Tests/FindPackageModeMakefileTest/foo.h b/Tests/FindPackageModeMakefileTest/foo.h new file mode 100644 index 0000000..4ec598a --- /dev/null +++ b/Tests/FindPackageModeMakefileTest/foo.h @@ -0,0 +1,6 @@ +#ifndef FOO_H +#define FOO_H + +int foo(); + +#endif diff --git a/Tests/FindPackageModeMakefileTest/main.cpp b/Tests/FindPackageModeMakefileTest/main.cpp index b785427..e5f9134 100644 --- a/Tests/FindPackageModeMakefileTest/main.cpp +++ b/Tests/FindPackageModeMakefileTest/main.cpp @@ -1,8 +1,8 @@ #include <stdio.h> -#include <png.h> +#include <foo.h> int main() { - printf("PNG copyright: %s\n", png_get_copyright(NULL)); + printf("foo is: %d\n", foo()); return 0; } |