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:
parent
25a425ecf0
commit
ae47302529
|
@ -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)
|
||||
ENDIF(CMAKE_TEST_GENERATOR MATCHES "Makefiles" OR CMAKE_TEST_GENERATOR MATCHES "KDevelop")
|
||||
|
||||
|
||||
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}
|
||||
|
|
|
@ -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)
|
|
@ -0,0 +1 @@
|
|||
int bar() {return 5;}
|
|
@ -0,0 +1 @@
|
|||
int foo() { return 12;}
|
|
@ -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;
|
||||
}
|
Loading…
Reference in New Issue