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
This commit is contained in:
Alexander Neundorf 2007-06-26 15:30:02 -04:00
parent 25a425ecf0
commit ae47302529
5 changed files with 53 additions and 4 deletions

View File

@ -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}

View File

@ -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)

1
Tests/SimpleCOnly/bar.c Normal file
View File

@ -0,0 +1 @@
int bar() {return 5;}

1
Tests/SimpleCOnly/foo.c Normal file
View File

@ -0,0 +1 @@
int foo() { return 12;}

12
Tests/SimpleCOnly/main.c Normal file
View File

@ -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;
}