ENH: add new test to make sure c and cxx flags are going to the right files
This commit is contained in:
parent
4f79ce8f1b
commit
8dc6db4777
@ -3,6 +3,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 1.3)
|
|||||||
# Create exe.
|
# Create exe.
|
||||||
#
|
#
|
||||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DTEST_CXX_FLAGS")
|
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DTEST_CXX_FLAGS")
|
||||||
|
SET(CMAKE_C_FLAGS "${CMAKE_C} -DTEST_C_FLAGS")
|
||||||
|
|
||||||
# Link to CMake lib
|
# Link to CMake lib
|
||||||
LINK_DIRECTORIES(${Complex_BINARY_DIR}/../../Source)
|
LINK_DIRECTORIES(${Complex_BINARY_DIR}/../../Source)
|
||||||
@ -14,7 +15,7 @@ SET(COMPLEX_LIBS CMakeTestLibrary;CMakeTestLibraryShared;CMakeTestCLibraryShared
|
|||||||
LINK_LIBRARIES(${COMPLEX_LIBS})
|
LINK_LIBRARIES(${COMPLEX_LIBS})
|
||||||
|
|
||||||
ADD_EXECUTABLE(A A.cxx)
|
ADD_EXECUTABLE(A A.cxx)
|
||||||
ADD_EXECUTABLE(complex complex)
|
ADD_EXECUTABLE(complex complex testcflags.c)
|
||||||
ADD_EXECUTABLE(complex.file complex.file.cxx)
|
ADD_EXECUTABLE(complex.file complex.file.cxx)
|
||||||
TARGET_LINK_LIBRARIES(complex CMakeLib cmsys cmexpat cmzlib)
|
TARGET_LINK_LIBRARIES(complex CMakeLib cmsys cmexpat cmzlib)
|
||||||
IF (UNIX)
|
IF (UNIX)
|
||||||
|
@ -258,6 +258,8 @@ void TestCMGeneratedFileSTream()
|
|||||||
cmSystemTools::RemoveFile(file2tmp.c_str());
|
cmSystemTools::RemoveFile(file2tmp.c_str());
|
||||||
cmSystemTools::RemoveFile(file3tmp.c_str());
|
cmSystemTools::RemoveFile(file3tmp.c_str());
|
||||||
}
|
}
|
||||||
|
// defined in testcflags.c
|
||||||
|
extern "C" int TestCFlags(char* m);
|
||||||
|
|
||||||
// ======================================================================
|
// ======================================================================
|
||||||
|
|
||||||
@ -372,6 +374,21 @@ int main()
|
|||||||
#else
|
#else
|
||||||
cmPassed("CMake CMAKE_CXX_FLAGS is being passed to the compiler.");
|
cmPassed("CMake CMAKE_CXX_FLAGS is being passed to the compiler.");
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef TEST_C_FLAGS
|
||||||
|
cmFailed("CMake CMAKE_C_FLAGS are being passed to c++ files the compiler!");
|
||||||
|
#else
|
||||||
|
cmPassed("CMake CMAKE_C_FLAGS are not being passed to c++ files.");
|
||||||
|
#endif
|
||||||
|
char msg[1024];
|
||||||
|
if(TestCFlags(msg))
|
||||||
|
{
|
||||||
|
cmPassed(
|
||||||
|
"CMake CMAKE_C_FLAGS are being passed to c files and CXX flags are not.");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
cmFailed(msg);
|
||||||
|
}
|
||||||
// ----------------------------------------------------------------------
|
// ----------------------------------------------------------------------
|
||||||
// Test ADD_DEFINITIONS
|
// Test ADD_DEFINITIONS
|
||||||
|
|
||||||
|
15
Tests/Complex/Executable/testcflags.c
Normal file
15
Tests/Complex/Executable/testcflags.c
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
#include <string.h>
|
||||||
|
int TestCFlags(char* m)
|
||||||
|
{
|
||||||
|
// TEST_CXX_FLAGS should not be defined in a c file
|
||||||
|
#ifdef TEST_CXX_FLAGS
|
||||||
|
strcpy(m, "CMake CMAKE_CXX_FLAGS (TEST_CXX_FLAGS) found in c file.");
|
||||||
|
return 0;
|
||||||
|
#endif
|
||||||
|
// TEST_C_FLAGS should be defined in a c file
|
||||||
|
#ifndef TEST_C_FLAGS
|
||||||
|
strcpy(m, "CMake CMAKE_C_FLAGS (TEST_C_FLAGS) not found in c file.");
|
||||||
|
return 0;
|
||||||
|
#endif
|
||||||
|
return 1;
|
||||||
|
}
|
@ -3,6 +3,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 1.3)
|
|||||||
# Create exe.
|
# Create exe.
|
||||||
#
|
#
|
||||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DTEST_CXX_FLAGS")
|
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DTEST_CXX_FLAGS")
|
||||||
|
SET(CMAKE_C_FLAGS "${CMAKE_C} -DTEST_C_FLAGS")
|
||||||
|
|
||||||
# Link to CMake lib
|
# Link to CMake lib
|
||||||
LINK_DIRECTORIES(${Complex_BINARY_DIR}/../../Source)
|
LINK_DIRECTORIES(${Complex_BINARY_DIR}/../../Source)
|
||||||
@ -14,7 +15,7 @@ SET(COMPLEX_LIBS CMakeTestLibrary;CMakeTestLibraryShared;CMakeTestCLibraryShared
|
|||||||
LINK_LIBRARIES(${COMPLEX_LIBS})
|
LINK_LIBRARIES(${COMPLEX_LIBS})
|
||||||
|
|
||||||
ADD_EXECUTABLE(A A.cxx)
|
ADD_EXECUTABLE(A A.cxx)
|
||||||
ADD_EXECUTABLE(complex complex)
|
ADD_EXECUTABLE(complex complex testcflags.c)
|
||||||
ADD_EXECUTABLE(complex.file complex.file.cxx)
|
ADD_EXECUTABLE(complex.file complex.file.cxx)
|
||||||
TARGET_LINK_LIBRARIES(complex CMakeLib cmsys cmexpat cmzlib)
|
TARGET_LINK_LIBRARIES(complex CMakeLib cmsys cmexpat cmzlib)
|
||||||
IF (UNIX)
|
IF (UNIX)
|
||||||
|
@ -258,6 +258,8 @@ void TestCMGeneratedFileSTream()
|
|||||||
cmSystemTools::RemoveFile(file2tmp.c_str());
|
cmSystemTools::RemoveFile(file2tmp.c_str());
|
||||||
cmSystemTools::RemoveFile(file3tmp.c_str());
|
cmSystemTools::RemoveFile(file3tmp.c_str());
|
||||||
}
|
}
|
||||||
|
// defined in testcflags.c
|
||||||
|
extern "C" int TestCFlags(char* m);
|
||||||
|
|
||||||
// ======================================================================
|
// ======================================================================
|
||||||
|
|
||||||
@ -372,6 +374,21 @@ int main()
|
|||||||
#else
|
#else
|
||||||
cmPassed("CMake CMAKE_CXX_FLAGS is being passed to the compiler.");
|
cmPassed("CMake CMAKE_CXX_FLAGS is being passed to the compiler.");
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef TEST_C_FLAGS
|
||||||
|
cmFailed("CMake CMAKE_C_FLAGS are being passed to c++ files the compiler!");
|
||||||
|
#else
|
||||||
|
cmPassed("CMake CMAKE_C_FLAGS are not being passed to c++ files.");
|
||||||
|
#endif
|
||||||
|
char msg[1024];
|
||||||
|
if(TestCFlags(msg))
|
||||||
|
{
|
||||||
|
cmPassed(
|
||||||
|
"CMake CMAKE_C_FLAGS are being passed to c files and CXX flags are not.");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
cmFailed(msg);
|
||||||
|
}
|
||||||
// ----------------------------------------------------------------------
|
// ----------------------------------------------------------------------
|
||||||
// Test ADD_DEFINITIONS
|
// Test ADD_DEFINITIONS
|
||||||
|
|
||||||
|
15
Tests/ComplexOneConfig/Executable/testcflags.c
Normal file
15
Tests/ComplexOneConfig/Executable/testcflags.c
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
#include <string.h>
|
||||||
|
int TestCFlags(char* m)
|
||||||
|
{
|
||||||
|
// TEST_CXX_FLAGS should not be defined in a c file
|
||||||
|
#ifdef TEST_CXX_FLAGS
|
||||||
|
strcpy(m, "CMake CMAKE_CXX_FLAGS (TEST_CXX_FLAGS) found in c file.");
|
||||||
|
return 0;
|
||||||
|
#endif
|
||||||
|
// TEST_C_FLAGS should be defined in a c file
|
||||||
|
#ifndef TEST_C_FLAGS
|
||||||
|
strcpy(m, "CMake CMAKE_C_FLAGS (TEST_C_FLAGS) not found in c file.");
|
||||||
|
return 0;
|
||||||
|
#endif
|
||||||
|
return 1;
|
||||||
|
}
|
@ -3,6 +3,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 1.3)
|
|||||||
# Create exe.
|
# Create exe.
|
||||||
#
|
#
|
||||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DTEST_CXX_FLAGS")
|
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DTEST_CXX_FLAGS")
|
||||||
|
SET(CMAKE_C_FLAGS "${CMAKE_C} -DTEST_C_FLAGS")
|
||||||
|
|
||||||
# Link to CMake lib
|
# Link to CMake lib
|
||||||
LINK_DIRECTORIES(${Complex_BINARY_DIR}/../../Source)
|
LINK_DIRECTORIES(${Complex_BINARY_DIR}/../../Source)
|
||||||
@ -14,7 +15,7 @@ SET(COMPLEX_LIBS CMakeTestLibrary;CMakeTestLibraryShared;CMakeTestCLibraryShared
|
|||||||
LINK_LIBRARIES(${COMPLEX_LIBS})
|
LINK_LIBRARIES(${COMPLEX_LIBS})
|
||||||
|
|
||||||
ADD_EXECUTABLE(A A.cxx)
|
ADD_EXECUTABLE(A A.cxx)
|
||||||
ADD_EXECUTABLE(complex complex)
|
ADD_EXECUTABLE(complex complex testcflags.c)
|
||||||
ADD_EXECUTABLE(complex.file complex.file.cxx)
|
ADD_EXECUTABLE(complex.file complex.file.cxx)
|
||||||
TARGET_LINK_LIBRARIES(complex CMakeLib cmsys cmexpat cmzlib)
|
TARGET_LINK_LIBRARIES(complex CMakeLib cmsys cmexpat cmzlib)
|
||||||
IF (UNIX)
|
IF (UNIX)
|
||||||
|
@ -258,6 +258,8 @@ void TestCMGeneratedFileSTream()
|
|||||||
cmSystemTools::RemoveFile(file2tmp.c_str());
|
cmSystemTools::RemoveFile(file2tmp.c_str());
|
||||||
cmSystemTools::RemoveFile(file3tmp.c_str());
|
cmSystemTools::RemoveFile(file3tmp.c_str());
|
||||||
}
|
}
|
||||||
|
// defined in testcflags.c
|
||||||
|
extern "C" int TestCFlags(char* m);
|
||||||
|
|
||||||
// ======================================================================
|
// ======================================================================
|
||||||
|
|
||||||
@ -372,6 +374,21 @@ int main()
|
|||||||
#else
|
#else
|
||||||
cmPassed("CMake CMAKE_CXX_FLAGS is being passed to the compiler.");
|
cmPassed("CMake CMAKE_CXX_FLAGS is being passed to the compiler.");
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef TEST_C_FLAGS
|
||||||
|
cmFailed("CMake CMAKE_C_FLAGS are being passed to c++ files the compiler!");
|
||||||
|
#else
|
||||||
|
cmPassed("CMake CMAKE_C_FLAGS are not being passed to c++ files.");
|
||||||
|
#endif
|
||||||
|
char msg[1024];
|
||||||
|
if(TestCFlags(msg))
|
||||||
|
{
|
||||||
|
cmPassed(
|
||||||
|
"CMake CMAKE_C_FLAGS are being passed to c files and CXX flags are not.");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
cmFailed(msg);
|
||||||
|
}
|
||||||
// ----------------------------------------------------------------------
|
// ----------------------------------------------------------------------
|
||||||
// Test ADD_DEFINITIONS
|
// Test ADD_DEFINITIONS
|
||||||
|
|
||||||
|
15
Tests/ComplexRelativePaths/Executable/testcflags.c
Normal file
15
Tests/ComplexRelativePaths/Executable/testcflags.c
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
#include <string.h>
|
||||||
|
int TestCFlags(char* m)
|
||||||
|
{
|
||||||
|
// TEST_CXX_FLAGS should not be defined in a c file
|
||||||
|
#ifdef TEST_CXX_FLAGS
|
||||||
|
strcpy(m, "CMake CMAKE_CXX_FLAGS (TEST_CXX_FLAGS) found in c file.");
|
||||||
|
return 0;
|
||||||
|
#endif
|
||||||
|
// TEST_C_FLAGS should be defined in a c file
|
||||||
|
#ifndef TEST_C_FLAGS
|
||||||
|
strcpy(m, "CMake CMAKE_C_FLAGS (TEST_C_FLAGS) not found in c file.");
|
||||||
|
return 0;
|
||||||
|
#endif
|
||||||
|
return 1;
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user