summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Neundorf <neundorf@kde.org>2007-06-26 19:30:02 (GMT)
committerAlexander Neundorf <neundorf@kde.org>2007-06-26 19:30:02 (GMT)
commitae47302529e9ee040a45ad9a8636e6116e880d0c (patch)
treef75d758cb83ae21d7c02248e75cd6a3d92457f1d
parent25a425ecf09fccc804758da1015f93fce724f856 (diff)
downloadCMake-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.txt26
-rw-r--r--Tests/SimpleCOnly/CMakeLists.txt17
-rw-r--r--Tests/SimpleCOnly/bar.c1
-rw-r--r--Tests/SimpleCOnly/foo.c1
-rw-r--r--Tests/SimpleCOnly/main.c12
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;
+}