diff options
author | Alexander Neundorf <neundorf@kde.org> | 2007-06-26 19:30:02 (GMT) |
---|---|---|
committer | Alexander Neundorf <neundorf@kde.org> | 2007-06-26 19:30:02 (GMT) |
commit | ae47302529e9ee040a45ad9a8636e6116e880d0c (patch) | |
tree | f75d758cb83ae21d7c02248e75cd6a3d92457f1d | |
parent | 25a425ecf09fccc804758da1015f93fce724f856 (diff) | |
download | CMake-ae47302529e9ee040a45ad9a8636e6116e880d0c.zip CMake-ae47302529e9ee040a45ad9a8636e6116e880d0c.tar.gz CMake-ae47302529e9ee040a45ad9a8636e6116e880d0c.tar.bz2 |
ENH: add a SimpleCOnly test, this is needed e.g. for testing sdcc since this
doesn't support C++ and also doesn't have a printf() implementation by
default
-add a test for mingw cross compiler
Alex
-rw-r--r-- | Tests/CMakeLists.txt | 26 | ||||
-rw-r--r-- | Tests/SimpleCOnly/CMakeLists.txt | 17 | ||||
-rw-r--r-- | Tests/SimpleCOnly/bar.c | 1 | ||||
-rw-r--r-- | Tests/SimpleCOnly/foo.c | 1 | ||||
-rw-r--r-- | Tests/SimpleCOnly/main.c | 12 |
5 files changed, 53 insertions, 4 deletions
diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index e104dbd..461e1b6 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -722,14 +722,16 @@ IF(BUILD_TESTING) ENDIF(JAVA_COMPILE AND JAVA_RUNTIME AND JAVA_ARCHIVE AND NOT MINGW) ENDIF(NOT CMAKE_TEST_GENERATOR MATCHES "Xcode") - # if it's a makefile based generator and sdcc is found, build the SimpleCOnly project with sdcc + # add some cross compiler tests, for now only with makefile based generators IF(CMAKE_TEST_GENERATOR MATCHES "Makefiles" OR CMAKE_TEST_GENERATOR MATCHES "KDevelop") + + # if sdcc is found, build the SimpleCOnly project with sdcc FIND_PROGRAM(SDCC_EXECUTABLE sdcc) IF(SDCC_EXECUTABLE) - ADD_TEST(SimpleCOnly ${CMAKE_CTEST_COMMAND} + ADD_TEST(SimpleCOnly_sdcc ${CMAKE_CTEST_COMMAND} --build-and-test "${CMake_SOURCE_DIR}/Tests/SimpleCOnly" - "${CMake_BINARY_DIR}/Tests/SimpleCOnly" + "${CMake_BINARY_DIR}/Tests/SimpleCOnly_sdcc" --build-generator ${CMAKE_TEST_GENERATOR} --build-project SimpleC --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} @@ -737,9 +739,25 @@ IF(BUILD_TESTING) "-DCMAKE_SYSTEM_NAME=Generic" "-DCMAKE_C_COMPILER=${SDCC_EXECUTABLE}") ENDIF(SDCC_EXECUTABLE) + + + FIND_PROGRAM(MINGW_LINUX2WIN_EXECUTABLE i586-mingw32msvc-gcc) + IF(MINGW_LINUX2WIN_EXECUTABLE) + ADD_TEST(Simple_Mingw_Linux2Win ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/Simple" + "${CMake_BINARY_DIR}/Tests/Simple_Mingw_Linux2Win" + --build-generator ${CMAKE_TEST_GENERATOR} + --build-project Simple + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-options + "-DCMAKE_SYSTEM_NAME=Windows" + "-DCMAKE_C_COMPILER=${MINGW_LINUX2WIN_EXECUTABLE}") + ENDIF(MINGW_LINUX2WIN_EXECUTABLE) + + ENDIF(CMAKE_TEST_GENERATOR MATCHES "Makefiles" OR CMAKE_TEST_GENERATOR MATCHES "KDevelop") - IF(BUILD_WXDialog AND wxWidgets_CONFIG_EXECUTABLE) # Will be set if the WX gui is on ADD_TEST(UseWX ${CMAKE_CTEST_COMMAND} diff --git a/Tests/SimpleCOnly/CMakeLists.txt b/Tests/SimpleCOnly/CMakeLists.txt new file mode 100644 index 0000000..d0ed651 --- /dev/null +++ b/Tests/SimpleCOnly/CMakeLists.txt @@ -0,0 +1,17 @@ +# this enables only C, i.e. disables C++ +project(SimpleCOnly C) + +add_library(SimpleCLib STATIC bar.c foo.c) + +add_executable(SimpleC main.c) +target_link_libraries(SimpleC SimpleCLib) + +# and some check, just to make sure it works: +include(CheckTypeSize) +check_type_size(float SIZE_FLOAT) +message(STATUS "sizeof(float): ${SIZE_FLOAT}") + +# make sure optimized libs are not used by debug builds +if(CMAKE_BUILD_TYPE MATCHES Debug) + target_link_libraries(Simple optimized c:/not/here.lib ) +endif(CMAKE_BUILD_TYPE MATCHES Debug) diff --git a/Tests/SimpleCOnly/bar.c b/Tests/SimpleCOnly/bar.c new file mode 100644 index 0000000..5d8eac0 --- /dev/null +++ b/Tests/SimpleCOnly/bar.c @@ -0,0 +1 @@ +int bar() {return 5;} diff --git a/Tests/SimpleCOnly/foo.c b/Tests/SimpleCOnly/foo.c new file mode 100644 index 0000000..b8cdea4 --- /dev/null +++ b/Tests/SimpleCOnly/foo.c @@ -0,0 +1 @@ +int foo() { return 12;} diff --git a/Tests/SimpleCOnly/main.c b/Tests/SimpleCOnly/main.c new file mode 100644 index 0000000..e4df685 --- /dev/null +++ b/Tests/SimpleCOnly/main.c @@ -0,0 +1,12 @@ +#include <stdio.h> + +extern int foo(); +extern int bar(); + +int main() +{ + int i=foo(); + int k=bar(); + i=i*k; + return i; +} |