Merge topic 'test-Complex-cleanup'

53d31c2 complex: Remove unused option to test CMakeLib
c1789e6 complex: Remove test dependence on cmSystemTools
569cee1 complex: Move cmSystemTools::UpperCase test to CMakeLibTests
49d6dd6 complex: Simplify test for single-character exe name
76ac88b complex: Move GeneratedFileStream test to CMakeLibTests
137e597 complex: Remove dynamic loader tests
6337920 complex: Sync Tests/ComplexOneConfig with Tests/Complex
6a75821 complex: Remove ancient unused ComplexRelativePaths test
This commit is contained in:
David Cole 2012-01-09 14:09:11 -05:00 committed by CMake Topic Stage
commit be358c68c3
60 changed files with 195 additions and 3022 deletions

View File

@ -5,6 +5,8 @@ include_directories(
) )
set(CMakeLib_TESTS set(CMakeLib_TESTS
testGeneratedFileStream
testSystemTools
testUTF8 testUTF8
testXMLParser testXMLParser
testXMLSafe testXMLSafe

View File

@ -0,0 +1,100 @@
/*============================================================================
CMake - Cross Platform Makefile Generator
Copyright 2000-2011 Kitware, Inc., Insight Software Consortium
Distributed under the OSI-approved BSD License (the "License");
see accompanying file Copyright.txt for details.
This software is distributed WITHOUT ANY WARRANTY; without even the
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the License for more information.
============================================================================*/
#include "cmGeneratedFileStream.h"
#include "cmSystemTools.h"
#define cmFailed(m1, m2) \
std::cout << "FAILED: " << m1 << m2 << "\n"; failed=1
int testGeneratedFileStream(int, char*[])
{
int failed = 0;
cmGeneratedFileStream gm;
std::string file1 = "generatedFile1";
std::string file2 = "generatedFile2";
std::string file3 = "generatedFile3";
std::string file4 = "generatedFile4";
std::string file1tmp = file1 + ".tmp";
std::string file2tmp = file2 + ".tmp";
std::string file3tmp = file3 + ".tmp";
std::string file4tmp = file4 + ".tmp";
gm.Open(file1.c_str());
gm << "This is generated file 1";
gm.Close();
gm.Open(file2.c_str());
gm << "This is generated file 2";
gm.Close();
gm.Open(file3.c_str());
gm << "This is generated file 3";
gm.Close();
gm.Open(file4.c_str());
gm << "This is generated file 4";
gm.Close();
if ( cmSystemTools::FileExists(file1.c_str()) )
{
if ( cmSystemTools::FileExists(file2.c_str()) )
{
if ( cmSystemTools::FileExists(file3.c_str()) )
{
if ( cmSystemTools::FileExists(file4.c_str()) )
{
if ( cmSystemTools::FileExists(file1tmp.c_str()) )
{
cmFailed("Something wrong with cmGeneratedFileStream. Temporary file is still here: ", file1tmp.c_str());
}
else if ( cmSystemTools::FileExists(file2tmp.c_str()) )
{
cmFailed("Something wrong with cmGeneratedFileStream. Temporary file is still here: ", file2tmp.c_str());
}
else if ( cmSystemTools::FileExists(file3tmp.c_str()) )
{
cmFailed("Something wrong with cmGeneratedFileStream. Temporary file is still here: ", file3tmp.c_str());
}
else if ( cmSystemTools::FileExists(file4tmp.c_str()) )
{
cmFailed("Something wrong with cmGeneratedFileStream. Temporary file is still here: ", file4tmp.c_str());
}
else
{
std::cout << "cmGeneratedFileStream works\n";
}
}
else
{
cmFailed("Something wrong with cmGeneratedFileStream. Cannot find file: ", file4.c_str());
}
}
else
{
cmFailed("Something wrong with cmGeneratedFileStream. Found file: ", file3.c_str());
}
}
else
{
cmFailed("Something wrong with cmGeneratedFileStream. Cannot find file: ", file2.c_str());
}
}
else
{
cmFailed("Something wrong with cmGeneratedFileStream. Cannot find file: ", file1.c_str());
}
cmSystemTools::RemoveFile(file1.c_str());
cmSystemTools::RemoveFile(file2.c_str());
cmSystemTools::RemoveFile(file3.c_str());
cmSystemTools::RemoveFile(file4.c_str());
cmSystemTools::RemoveFile(file1tmp.c_str());
cmSystemTools::RemoveFile(file2tmp.c_str());
cmSystemTools::RemoveFile(file3tmp.c_str());
cmSystemTools::RemoveFile(file4tmp.c_str());
return failed;
}

View File

@ -0,0 +1,33 @@
/*============================================================================
CMake - Cross Platform Makefile Generator
Copyright 2000-2011 Kitware, Inc., Insight Software Consortium
Distributed under the OSI-approved BSD License (the "License");
see accompanying file Copyright.txt for details.
This software is distributed WITHOUT ANY WARRANTY; without even the
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the License for more information.
============================================================================*/
#include "cmSystemTools.h"
#define cmPassed(m) std::cout << "Passed: " << m << "\n"
#define cmFailed(m) std::cout << "FAILED: " << m << "\n"; failed=1
int testSystemTools(int, char*[])
{
int failed = 0;
// ----------------------------------------------------------------------
// Test cmSystemTools::UpperCase
std::string str = "abc";
std::string strupper = "ABC";
if(cmSystemTools::UpperCase(str) == strupper)
{
cmPassed("cmSystemTools::UpperCase is working");
}
else
{
cmFailed("cmSystemTools::UpperCase is working");
}
return failed;
}

View File

@ -772,13 +772,6 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/
SET(COMPILER_IS_COMO 1) SET(COMPILER_IS_COMO 1)
ENDIF(CMAKE_BASE_NAME MATCHES "^como$") ENDIF(CMAKE_BASE_NAME MATCHES "^como$")
IF(NOT COMPILER_IS_COMO) IF(NOT COMPILER_IS_COMO)
SET(COMPLEX_TEST_CMAKELIB 1)
IF(CMAKE_TEST_DIFFERENT_GENERATOR OR CMAKE_TEST_SYSTEM_LIBRARIES)
SET(COMPLEX_TEST_CMAKELIB 0)
ENDIF(CMAKE_TEST_DIFFERENT_GENERATOR OR CMAKE_TEST_SYSTEM_LIBRARIES)
IF(BORLAND)
SET(COMPLEX_TEST_CMAKELIB 0)
ENDIF(BORLAND)
ADD_TEST(complex ${CMAKE_CTEST_COMMAND} ADD_TEST(complex ${CMAKE_CTEST_COMMAND}
--build-and-test --build-and-test
"${CMake_SOURCE_DIR}/Tests/Complex" "${CMake_SOURCE_DIR}/Tests/Complex"
@ -790,7 +783,6 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/
--build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
--build-exe-dir "${CMake_BINARY_DIR}/Tests/Complex/bin" --build-exe-dir "${CMake_BINARY_DIR}/Tests/Complex/bin"
--build-options --build-options
-DCOMPLEX_TEST_CMAKELIB:BOOL=${COMPLEX_TEST_CMAKELIB}
-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
--test-command complex --test-command complex
) )
@ -805,7 +797,6 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/
--build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
--build-exe-dir "${CMake_BINARY_DIR}/Tests/ComplexOneConfig/bin" --build-exe-dir "${CMake_BINARY_DIR}/Tests/ComplexOneConfig/bin"
--build-options --build-options
-DCOMPLEX_TEST_CMAKELIB:BOOL=${COMPLEX_TEST_CMAKELIB}
-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
--test-command complex) --test-command complex)
LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/ComplexOneConfig") LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/ComplexOneConfig")
@ -824,18 +815,6 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/
# --build-project ConvLibrary # --build-project ConvLibrary
# --test-command bartest) # --test-command bartest)
# ADD_TEST(complexRelativePaths ${CMAKE_CTEST_COMMAND}
# --build-and-test
# "${CMake_SOURCE_DIR}/Tests/ComplexRelativePaths"
# "${CMake_BINARY_DIR}/Tests/ComplexRelativePaths"
# --build-generator ${CMAKE_TEST_GENERATOR}
# --build-project complex
# --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
# --build-exe-dir "${CMake_BINARY_DIR}/Tests/ComplexRelativePaths/bin"
# --build-options -DCMAKE_USE_RELATIVE_PATHS:BOOL=ON
# --test-command complex)
ENDIF(NOT COMPILER_IS_COMO) ENDIF(NOT COMPILER_IS_COMO)
ADD_TEST(Example ${CMAKE_CTEST_COMMAND} ADD_TEST(Example ${CMAKE_CTEST_COMMAND}

File diff suppressed because one or more lines are too long

View File

@ -1,7 +1,9 @@
// Include code from a header that should not be compiled separately. // Include code from a header that should not be compiled separately.
#include "A.hh" #include "A.hh"
#include <stdio.h>
int main() int main()
{ {
return A(); printf("#define A_VALUE %d\n", A());
return 0;
} }

View File

@ -5,25 +5,6 @@ CMAKE_MINIMUM_REQUIRED(VERSION 1.3)
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_FLAGS} -DTEST_C_FLAGS") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DTEST_C_FLAGS")
IF(COMPLEX_TEST_CMAKELIB)
# Link to CMake lib
LINK_DIRECTORIES(${Complex_BINARY_DIR}/../../Source)
LINK_DIRECTORIES(${Complex_BINARY_DIR}/../../Source/kwsys)
LINK_DIRECTORIES(${Complex_BINARY_DIR}/../../Utilities/cmexpat)
LINK_DIRECTORIES(${Complex_BINARY_DIR}/../../Utilities/cmzlib)
# prefer the new curl if it is around
IF(EXISTS ${Complex_BINARY_DIR}/../../Utilities/cmcurl-7.19.0)
LINK_DIRECTORIES(${Complex_BINARY_DIR}/../../Utilities/cmcurl-7.19.0/lib)
ENDIF(EXISTS ${Complex_BINARY_DIR}/../../Utilities/cmcurl-7.19.0)
IF(EXISTS ${Complex_BINARY_DIR}/../../Utilities/cmcurl)
LINK_DIRECTORIES(${Complex_BINARY_DIR}/../../Utilities/cmcurl)
ENDIF(EXISTS ${Complex_BINARY_DIR}/../../Utilities/cmcurl)
LINK_DIRECTORIES(
${Complex_BINARY_DIR}/../../Utilities/cmlibarchive/libarchive
${Complex_BINARY_DIR}/../../Utilities/cmbzip2
)
ENDIF(COMPLEX_TEST_CMAKELIB)
# Create an imported target for if(TARGET) test below. # Create an imported target for if(TARGET) test below.
ADD_LIBRARY(ExeImportedTarget UNKNOWN IMPORTED) ADD_LIBRARY(ExeImportedTarget UNKNOWN IMPORTED)
@ -55,14 +36,13 @@ SET_SOURCE_FILES_PROPERTIES(complex_nobuild.cxx PROPERTIES
SET_SOURCE_FILES_PROPERTIES(complex_nobuild.c PROPERTIES SET_SOURCE_FILES_PROPERTIES(complex_nobuild.c PROPERTIES
HEADER_FILE_ONLY 1) HEADER_FILE_ONLY 1)
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
ADD_EXECUTABLE(A A.cxx A.hh A.h A.txt) ADD_EXECUTABLE(A A.cxx A.hh A.h A.txt)
ADD_EXECUTABLE(complex complex testcflags.c ) ADD_CUSTOM_COMMAND(OUTPUT Aout.h COMMAND A > Aout.h VERBATIM)
ADD_EXECUTABLE(complex complex testcflags.c Aout.h)
# Sub1/NameConflictTest.c Sub2/NameConflictTest.c) # Sub1/NameConflictTest.c Sub2/NameConflictTest.c)
ADD_EXECUTABLE(complex.file complex.file.cxx complex_nobuild.cxx ADD_EXECUTABLE(complex.file complex.file.cxx complex_nobuild.cxx
complex_nobuild.c) complex_nobuild.c)
IF(COMPLEX_TEST_CMAKELIB)
TARGET_LINK_LIBRARIES(complex CMakeLib cmsys cmexpat cmzlib cmlibarchive cmbzip2 cmcurl)
ENDIF(COMPLEX_TEST_CMAKELIB)
IF (UNIX) IF (UNIX)
TARGET_LINK_LIBRARIES(complex ${CMAKE_DL_LIBS}) TARGET_LINK_LIBRARIES(complex ${CMAKE_DL_LIBS})

View File

@ -3,23 +3,21 @@
#include "cmTestGeneratedHeader.h" #include "cmTestGeneratedHeader.h"
#include "cmVersion.h" #include "cmVersion.h"
#include "ExtraSources/file1.h" #include "ExtraSources/file1.h"
#include "Aout.h"
#include "file2.h" #include "file2.h"
#include "sharedFile.h" #include "sharedFile.h"
extern "C" { extern "C" {
#include "testConly.h" #include "testConly.h"
} }
#ifdef COMPLEX_TEST_CMAKELIB
#include "cmStandardIncludes.h"
#include "cmSystemTools.h"
#include "cmDynamicLoader.h"
#include "cmSystemTools.h"
#include "cmGeneratedFileStream.h"
#include <cmsys/DynamicLoader.hxx>
#else
#include <vector> #include <vector>
#include <string> #include <string>
#include <iostream> #include <iostream>
#include <string.h> #include <string.h>
#include <stdio.h>
#include <sys/stat.h>
#if !defined(S_ISDIR)
# define S_ISDIR(mode) ((mode) & _S_IFDIR)
#endif #endif
#ifdef COMPLEX_TEST_LINK_STATIC #ifdef COMPLEX_TEST_LINK_STATIC
@ -67,18 +65,18 @@ void cmPassed(const char* Message, const char* m2="")
# error Per-configuration directory-level definition not inherited. # error Per-configuration directory-level definition not inherited.
#endif #endif
#ifdef COMPLEX_TEST_CMAKELIB
// ====================================================================== // ======================================================================
void TestAndRemoveFile(const char* filename) void TestAndRemoveFile(const char* filename)
{ {
if (!cmSystemTools::FileExists(filename)) struct stat st;
if(stat(filename, &st) < 0)
{ {
cmFailed("Could not find file: ", filename); cmFailed("Could not find file: ", filename);
} }
else else
{ {
if (!cmSystemTools::RemoveFile(filename)) if (remove(filename) < 0)
{ {
cmFailed("Unable to remove file. It does not imply that this test failed, but it *will* be corrupted thereafter if this file is not removed: ", filename); cmFailed("Unable to remove file. It does not imply that this test failed, but it *will* be corrupted thereafter if this file is not removed: ", filename);
} }
@ -93,105 +91,17 @@ void TestAndRemoveFile(const char* filename)
void TestDir(const char* filename) void TestDir(const char* filename)
{ {
if (!cmSystemTools::FileExists(filename)) struct stat st;
if(stat(filename, &st) < 0 || !S_ISDIR(st.st_mode))
{ {
cmFailed("Could not find dir: ", filename); cmFailed("Could not find dir: ", filename);
} }
else else
{ {
if (!cmSystemTools::FileIsDirectory(filename)) cmPassed("Find dir: ", filename);
{
cmFailed("Unable to check if file is a directory: ", filename);
}
else
{
cmPassed("Find dir: ", filename);
}
} }
} }
// ======================================================================
void TestCMGeneratedFileSTream()
{
cmGeneratedFileStream gm;
std::string file1 = std::string(BINARY_DIR) + std::string("/generatedFile1");
std::string file2 = std::string(BINARY_DIR) + std::string("/generatedFile2");
std::string file3 = std::string(BINARY_DIR) + std::string("/generatedFile3");
std::string file4 = std::string(BINARY_DIR) + std::string("/generatedFile4");
std::string file1tmp = file1 + ".tmp";
std::string file2tmp = file2 + ".tmp";
std::string file3tmp = file3 + ".tmp";
std::string file4tmp = file4 + ".tmp";
gm.Open(file1.c_str());
gm << "This is generated file 1";
gm.Close();
gm.Open(file2.c_str());
gm << "This is generated file 2";
gm.Close();
gm.Open(file3.c_str());
gm << "This is generated file 3";
gm.Close();
gm.Open(file4.c_str());
gm << "This is generated file 4";
gm.Close();
if ( cmSystemTools::FileExists(file1.c_str()) )
{
if ( cmSystemTools::FileExists(file2.c_str()) )
{
if ( cmSystemTools::FileExists(file3.c_str()) )
{
if ( cmSystemTools::FileExists(file4.c_str()) )
{
if ( cmSystemTools::FileExists(file1tmp.c_str()) )
{
cmFailed("Something wrong with cmGeneratedFileStream. Temporary file is still here: ", file1tmp.c_str());
}
else if ( cmSystemTools::FileExists(file2tmp.c_str()) )
{
cmFailed("Something wrong with cmGeneratedFileStream. Temporary file is still here: ", file2tmp.c_str());
}
else if ( cmSystemTools::FileExists(file3tmp.c_str()) )
{
cmFailed("Something wrong with cmGeneratedFileStream. Temporary file is still here: ", file3tmp.c_str());
}
else if ( cmSystemTools::FileExists(file4tmp.c_str()) )
{
cmFailed("Something wrong with cmGeneratedFileStream. Temporary file is still here: ", file4tmp.c_str());
}
else
{
cmPassed("cmGeneratedFileStream works.");
}
}
else
{
cmFailed("Something wrong with cmGeneratedFileStream. Cannot find file: ", file4.c_str());
}
}
else
{
cmFailed("Something wrong with cmGeneratedFileStream. Found file: ", file3.c_str());
}
}
else
{
cmFailed("Something wrong with cmGeneratedFileStream. Cannot find file: ", file2.c_str());
}
}
else
{
cmFailed("Something wrong with cmGeneratedFileStream. Cannot find file: ", file1.c_str());
}
cmSystemTools::RemoveFile(file1.c_str());
cmSystemTools::RemoveFile(file2.c_str());
cmSystemTools::RemoveFile(file3.c_str());
cmSystemTools::RemoveFile(file1tmp.c_str());
cmSystemTools::RemoveFile(file2tmp.c_str());
cmSystemTools::RemoveFile(file3tmp.c_str());
}
#endif
// Here is a stupid function that tries to use std::string methods // Here is a stupid function that tries to use std::string methods
// so that the dec cxx compiler will instantiate the stuff that // so that the dec cxx compiler will instantiate the stuff that
// we are using from the CMakeLib library.... // we are using from the CMakeLib library....
@ -232,113 +142,6 @@ extern "C" int NameConflictTest2();
int main() int main()
{ {
std::string lib = BINARY_DIR;
lib += "/lib/";
#ifdef CMAKE_INTDIR
lib += CMAKE_INTDIR;
lib += "/";
#endif
std::string exe = BINARY_DIR;
exe += "/bin/";
#ifdef CMAKE_INTDIR
exe += CMAKE_INTDIR;
exe += "/";
#endif
#ifdef COMPLEX_TEST_CMAKELIB
// Test a single character executable to test a: in makefiles
exe += "A";
exe += cmSystemTools::GetExecutableExtension();
int ret;
std::string errorMessage;
exe = cmSystemTools::ConvertToRunCommandPath(exe.c_str());
if(cmSystemTools::RunSingleCommand(exe.c_str(), 0, &ret))
{
if(ret != 10)
{
errorMessage += exe;
errorMessage += " did not return 10";
}
}
else
{
errorMessage += exe;
errorMessage += ": failed to run.";
}
if(errorMessage.size())
{
cmFailed(errorMessage.c_str());
}
else
{
cmPassed("run Single Character executable A returned 10 as expected.");
}
lib += CMAKE_SHARED_MODULE_PREFIX;
lib += "CMakeTestModule";
lib += CMAKE_SHARED_MODULE_SUFFIX;
cmsys::DynamicLoader::LibraryHandle handle = cmDynamicLoader::OpenLibrary(lib.c_str());
if(!handle)
{
std::string err = "Can not open CMakeTestModule:\n";
err += lib;
cmFailed(err.c_str());
}
else
{
cmsys::DynamicLoader::SymbolPointer fun =
cmsys::DynamicLoader::GetSymbolAddress(handle, "ModuleFunction");
if(!fun)
{
fun = cmsys::DynamicLoader::GetSymbolAddress(handle, "_ModuleFunction");
}
typedef int (*TEST_FUNCTION)();
TEST_FUNCTION testFun = (TEST_FUNCTION)fun;
if(!testFun)
{
cmFailed("Could not find symbol ModuleFunction in library ");
}
else
{
int ret = (*testFun)();
if(!ret)
{
cmFailed("ModuleFunction call did not return valid return.");
}
cmPassed("Module loaded and ModuleFunction called correctly.");
}
}
cmDynamicLoader::FlushCache(); // fix memory leaks
if(sharedFunction() != 1)
{
cmFailed("Call to sharedFunction from shared library failed.");
}
else
{
cmPassed("Call to sharedFunction from shared library worked.");
}
if(CsharedFunction() != 1)
{
cmFailed("Call to C sharedFunction from shared library failed.");
}
else
{
cmPassed("Call to C sharedFunction from shared library worked.");
}
// ----------------------------------------------------------------------
// Test cmSystemTools::UpperCase
std::string str = "abc";
std::string strupper = "ABC";
if(cmSystemTools::UpperCase(str) == strupper)
{
cmPassed("cmSystemTools::UpperCase is working");
}
else
{
cmFailed("cmSystemTools::UpperCase is working");
}
#endif
#if 0 #if 0
if(NameConflictTest1() == 0 && NameConflictTest2() == 0) if(NameConflictTest1() == 0 && NameConflictTest2() == 0)
{ {
@ -839,8 +642,7 @@ int main()
"FILENAME_VAR_PATH_NAME is not defined."); "FILENAME_VAR_PATH_NAME is not defined.");
#else #else
if((strcmp(FILENAME_VAR_PATH_NAME, "Complex") == 0) || if((strcmp(FILENAME_VAR_PATH_NAME, "Complex") == 0) ||
(strcmp(FILENAME_VAR_PATH_NAME, "ComplexOneConfig") == 0) || (strcmp(FILENAME_VAR_PATH_NAME, "ComplexOneConfig") == 0))
(strcmp(FILENAME_VAR_PATH_NAME, "ComplexRelativePaths") == 0))
{ {
cmPassed("FILENAME_VAR_PATH_NAME == ", FILENAME_VAR_PATH_NAME); cmPassed("FILENAME_VAR_PATH_NAME == ", FILENAME_VAR_PATH_NAME);
} }
@ -901,8 +703,7 @@ int main()
"PATH_VAR_NAME is not defined."); "PATH_VAR_NAME is not defined.");
#else #else
if((strcmp(PATH_VAR_NAME, "Complex") == 0) || if((strcmp(PATH_VAR_NAME, "Complex") == 0) ||
(strcmp(PATH_VAR_NAME, "ComplexOneConfig") == 0) || (strcmp(PATH_VAR_NAME, "ComplexOneConfig") == 0))
(strcmp(PATH_VAR_NAME, "ComplexRelativePaths") == 0))
{ {
cmPassed("PATH_VAR_NAME == ", PATH_VAR_NAME); cmPassed("PATH_VAR_NAME == ", PATH_VAR_NAME);
} }
@ -984,7 +785,6 @@ int main()
} }
#endif #endif
#ifdef COMPLEX_TEST_CMAKELIB
// ---------------------------------------------------------------------- // ----------------------------------------------------------------------
// Some pre-build/pre-link/post-build custom-commands have been // Some pre-build/pre-link/post-build custom-commands have been
// attached to the lib (see Library/). // attached to the lib (see Library/).
@ -1030,7 +830,6 @@ int main()
// only created during a build. // only created during a build.
TestAndRemoveFile(BINARY_DIR "/Executable/Temp/complex-required.txt"); TestAndRemoveFile(BINARY_DIR "/Executable/Temp/complex-required.txt");
#endif
// ---------------------------------------------------------------------- // ----------------------------------------------------------------------
// Test FIND_LIBRARY // Test FIND_LIBRARY
@ -1197,11 +996,6 @@ int main()
cmPassed("CMake SET CACHE FORCE"); cmPassed("CMake SET CACHE FORCE");
#endif #endif
#ifdef COMPLEX_TEST_CMAKELIB
// Test the generated file stream.
TestCMGeneratedFileSTream();
#endif
#ifdef COMPLEX_TEST_LINK_STATIC #ifdef COMPLEX_TEST_LINK_STATIC
if(TestLinkGetType()) if(TestLinkGetType())
{ {
@ -1213,6 +1007,12 @@ int main()
} }
#endif #endif
#if defined(A_VALUE) && A_VALUE == 10
cmPassed("Single-character executable A worked.");
#else
cmFailed("Single-character executable A failed.");
#endif
// ---------------------------------------------------------------------- // ----------------------------------------------------------------------
// Summary // Summary

View File

@ -43,7 +43,6 @@ ENDIF(WIN32)
# #
SET(SharedLibrarySources sharedFile) SET(SharedLibrarySources sharedFile)
ADD_LIBRARY(CMakeTestLibraryShared SHARED ${SharedLibrarySources}) ADD_LIBRARY(CMakeTestLibraryShared SHARED ${SharedLibrarySources})
ADD_LIBRARY(CMakeTestModule MODULE moduleFile.c)
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DTEST_C_FLAGS") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DTEST_C_FLAGS")
ADD_LIBRARY(CMakeTestCLibraryShared SHARED testConly.c) ADD_LIBRARY(CMakeTestCLibraryShared SHARED testConly.c)
DEFINE_PROPERTY( DEFINE_PROPERTY(

View File

@ -1,6 +0,0 @@
#include "moduleFile.h"
int ModuleFunction()
{
return 1;
}

View File

@ -1,12 +0,0 @@
#if defined(_WIN32) || defined(WIN32) /* Win32 version */
#ifdef CMakeTestModule_EXPORTS
# define CMakeTest_EXPORT __declspec(dllexport)
#else
# define CMakeTest_EXPORT __declspec(dllimport)
#endif
#else
/* unix needs nothing */
#define CMakeTest_EXPORT
#endif
CMakeTest_EXPORT int ModuleFunction();

View File

@ -4,8 +4,6 @@
#cmakedefine ONE_VAR_IS_DEFINED #cmakedefine ONE_VAR_IS_DEFINED
#cmakedefine ZERO_VAR #cmakedefine ZERO_VAR
#cmakedefine COMPLEX_TEST_CMAKELIB
#define STRING_VAR "${STRING_VAR}" #define STRING_VAR "${STRING_VAR}"
// Test FOREACH // Test FOREACH

File diff suppressed because one or more lines are too long

View File

@ -1,7 +1,9 @@
// Include code from a header that should not be compiled separately. // Include code from a header that should not be compiled separately.
#include "A.hh" #include "A.hh"
#include <stdio.h>
int main() int main()
{ {
return A(); printf("#define A_VALUE %d\n", A());
return 0;
} }

View File

@ -5,25 +5,6 @@ CMAKE_MINIMUM_REQUIRED(VERSION 1.3)
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_FLAGS} -DTEST_C_FLAGS") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DTEST_C_FLAGS")
IF(COMPLEX_TEST_CMAKELIB)
# Link to CMake lib
LINK_DIRECTORIES(${Complex_BINARY_DIR}/../../Source)
LINK_DIRECTORIES(${Complex_BINARY_DIR}/../../Source/kwsys)
LINK_DIRECTORIES(${Complex_BINARY_DIR}/../../Utilities/cmexpat)
LINK_DIRECTORIES(${Complex_BINARY_DIR}/../../Utilities/cmzlib)
# prefer the new curl if it is around
IF(EXISTS ${Complex_BINARY_DIR}/../../Utilities/cmcurl-7.19.0)
LINK_DIRECTORIES(${Complex_BINARY_DIR}/../../Utilities/cmcurl-7.19.0/lib)
ENDIF(EXISTS ${Complex_BINARY_DIR}/../../Utilities/cmcurl-7.19.0)
IF(EXISTS ${Complex_BINARY_DIR}/../../Utilities/cmcurl)
LINK_DIRECTORIES(${Complex_BINARY_DIR}/../../Utilities/cmcurl)
ENDIF(EXISTS ${Complex_BINARY_DIR}/../../Utilities/cmcurl)
LINK_DIRECTORIES(
${Complex_BINARY_DIR}/../../Utilities/cmlibarchive/libarchive
${Complex_BINARY_DIR}/../../Utilities/cmbzip2
)
ENDIF(COMPLEX_TEST_CMAKELIB)
# Create an imported target for if(TARGET) test below. # Create an imported target for if(TARGET) test below.
ADD_LIBRARY(ExeImportedTarget UNKNOWN IMPORTED) ADD_LIBRARY(ExeImportedTarget UNKNOWN IMPORTED)
@ -49,13 +30,19 @@ LINK_LIBRARIES(${COMPLEX_LIBS})
SET_SOURCE_FILES_PROPERTIES(complex_nobuild.cxx PROPERTIES SET_SOURCE_FILES_PROPERTIES(complex_nobuild.cxx PROPERTIES
HEADER_FILE_ONLY 1) HEADER_FILE_ONLY 1)
# Test forcing a .c file to not build.
# This makes sure a mixed language library is created
# with header file only sources
SET_SOURCE_FILES_PROPERTIES(complex_nobuild.c PROPERTIES
HEADER_FILE_ONLY 1)
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
ADD_EXECUTABLE(A A.cxx A.hh A.h A.txt) ADD_EXECUTABLE(A A.cxx A.hh A.h A.txt)
ADD_EXECUTABLE(complex complex testcflags.c ) ADD_CUSTOM_COMMAND(OUTPUT Aout.h COMMAND A > Aout.h VERBATIM)
ADD_EXECUTABLE(complex complex testcflags.c Aout.h)
# Sub1/NameConflictTest.c Sub2/NameConflictTest.c) # Sub1/NameConflictTest.c Sub2/NameConflictTest.c)
ADD_EXECUTABLE(complex.file complex.file.cxx complex_nobuild.cxx) ADD_EXECUTABLE(complex.file complex.file.cxx complex_nobuild.cxx
IF(COMPLEX_TEST_CMAKELIB) complex_nobuild.c)
TARGET_LINK_LIBRARIES(complex CMakeLib cmsys cmexpat cmzlib cmlibarchive cmbzip2 cmcurl)
ENDIF(COMPLEX_TEST_CMAKELIB)
IF (UNIX) IF (UNIX)
TARGET_LINK_LIBRARIES(complex ${CMAKE_DL_LIBS}) TARGET_LINK_LIBRARIES(complex ${CMAKE_DL_LIBS})

View File

@ -3,23 +3,21 @@
#include "cmTestGeneratedHeader.h" #include "cmTestGeneratedHeader.h"
#include "cmVersion.h" #include "cmVersion.h"
#include "ExtraSources/file1.h" #include "ExtraSources/file1.h"
#include "Aout.h"
#include "file2.h" #include "file2.h"
#include "sharedFile.h" #include "sharedFile.h"
extern "C" { extern "C" {
#include "testConly.h" #include "testConly.h"
} }
#ifdef COMPLEX_TEST_CMAKELIB
#include "cmStandardIncludes.h"
#include "cmSystemTools.h"
#include "cmDynamicLoader.h"
#include "cmSystemTools.h"
#include "cmGeneratedFileStream.h"
#include <cmsys/DynamicLoader.hxx>
#else
#include <vector> #include <vector>
#include <string> #include <string>
#include <iostream> #include <iostream>
#include <string.h> #include <string.h>
#include <stdio.h>
#include <sys/stat.h>
#if !defined(S_ISDIR)
# define S_ISDIR(mode) ((mode) & _S_IFDIR)
#endif #endif
#ifdef COMPLEX_TEST_LINK_STATIC #ifdef COMPLEX_TEST_LINK_STATIC
@ -67,18 +65,18 @@ void cmPassed(const char* Message, const char* m2="")
# error Per-configuration directory-level definition not inherited. # error Per-configuration directory-level definition not inherited.
#endif #endif
#ifdef COMPLEX_TEST_CMAKELIB
// ====================================================================== // ======================================================================
void TestAndRemoveFile(const char* filename) void TestAndRemoveFile(const char* filename)
{ {
if (!cmSystemTools::FileExists(filename)) struct stat st;
if(stat(filename, &st) < 0)
{ {
cmFailed("Could not find file: ", filename); cmFailed("Could not find file: ", filename);
} }
else else
{ {
if (!cmSystemTools::RemoveFile(filename)) if (remove(filename) < 0)
{ {
cmFailed("Unable to remove file. It does not imply that this test failed, but it *will* be corrupted thereafter if this file is not removed: ", filename); cmFailed("Unable to remove file. It does not imply that this test failed, but it *will* be corrupted thereafter if this file is not removed: ", filename);
} }
@ -93,105 +91,17 @@ void TestAndRemoveFile(const char* filename)
void TestDir(const char* filename) void TestDir(const char* filename)
{ {
if (!cmSystemTools::FileExists(filename)) struct stat st;
if(stat(filename, &st) < 0 || !S_ISDIR(st.st_mode))
{ {
cmFailed("Could not find dir: ", filename); cmFailed("Could not find dir: ", filename);
} }
else else
{ {
if (!cmSystemTools::FileIsDirectory(filename)) cmPassed("Find dir: ", filename);
{
cmFailed("Unable to check if file is a directory: ", filename);
}
else
{
cmPassed("Find dir: ", filename);
}
} }
} }
// ======================================================================
void TestCMGeneratedFileSTream()
{
cmGeneratedFileStream gm;
std::string file1 = std::string(BINARY_DIR) + std::string("/generatedFile1");
std::string file2 = std::string(BINARY_DIR) + std::string("/generatedFile2");
std::string file3 = std::string(BINARY_DIR) + std::string("/generatedFile3");
std::string file4 = std::string(BINARY_DIR) + std::string("/generatedFile4");
std::string file1tmp = file1 + ".tmp";
std::string file2tmp = file2 + ".tmp";
std::string file3tmp = file3 + ".tmp";
std::string file4tmp = file4 + ".tmp";
gm.Open(file1.c_str());
gm << "This is generated file 1";
gm.Close();
gm.Open(file2.c_str());
gm << "This is generated file 2";
gm.Close();
gm.Open(file3.c_str());
gm << "This is generated file 3";
gm.Close();
gm.Open(file4.c_str());
gm << "This is generated file 4";
gm.Close();
if ( cmSystemTools::FileExists(file1.c_str()) )
{
if ( cmSystemTools::FileExists(file2.c_str()) )
{
if ( cmSystemTools::FileExists(file3.c_str()) )
{
if ( cmSystemTools::FileExists(file4.c_str()) )
{
if ( cmSystemTools::FileExists(file1tmp.c_str()) )
{
cmFailed("Something wrong with cmGeneratedFileStream. Temporary file is still here: ", file1tmp.c_str());
}
else if ( cmSystemTools::FileExists(file2tmp.c_str()) )
{
cmFailed("Something wrong with cmGeneratedFileStream. Temporary file is still here: ", file2tmp.c_str());
}
else if ( cmSystemTools::FileExists(file3tmp.c_str()) )
{
cmFailed("Something wrong with cmGeneratedFileStream. Temporary file is still here: ", file3tmp.c_str());
}
else if ( cmSystemTools::FileExists(file4tmp.c_str()) )
{
cmFailed("Something wrong with cmGeneratedFileStream. Temporary file is still here: ", file4tmp.c_str());
}
else
{
cmPassed("cmGeneratedFileStream works.");
}
}
else
{
cmFailed("Something wrong with cmGeneratedFileStream. Cannot find file: ", file4.c_str());
}
}
else
{
cmFailed("Something wrong with cmGeneratedFileStream. Found file: ", file3.c_str());
}
}
else
{
cmFailed("Something wrong with cmGeneratedFileStream. Cannot find file: ", file2.c_str());
}
}
else
{
cmFailed("Something wrong with cmGeneratedFileStream. Cannot find file: ", file1.c_str());
}
cmSystemTools::RemoveFile(file1.c_str());
cmSystemTools::RemoveFile(file2.c_str());
cmSystemTools::RemoveFile(file3.c_str());
cmSystemTools::RemoveFile(file1tmp.c_str());
cmSystemTools::RemoveFile(file2tmp.c_str());
cmSystemTools::RemoveFile(file3tmp.c_str());
}
#endif
// Here is a stupid function that tries to use std::string methods // Here is a stupid function that tries to use std::string methods
// so that the dec cxx compiler will instantiate the stuff that // so that the dec cxx compiler will instantiate the stuff that
// we are using from the CMakeLib library.... // we are using from the CMakeLib library....
@ -232,113 +142,6 @@ extern "C" int NameConflictTest2();
int main() int main()
{ {
std::string lib = BINARY_DIR;
lib += "/lib/";
#ifdef CMAKE_INTDIR
lib += CMAKE_INTDIR;
lib += "/";
#endif
std::string exe = BINARY_DIR;
exe += "/bin/";
#ifdef CMAKE_INTDIR
exe += CMAKE_INTDIR;
exe += "/";
#endif
#ifdef COMPLEX_TEST_CMAKELIB
// Test a single character executable to test a: in makefiles
exe += "A";
exe += cmSystemTools::GetExecutableExtension();
int ret;
std::string errorMessage;
exe = cmSystemTools::ConvertToRunCommandPath(exe.c_str());
if(cmSystemTools::RunSingleCommand(exe.c_str(), 0, &ret))
{
if(ret != 10)
{
errorMessage += exe;
errorMessage += " did not return 10";
}
}
else
{
errorMessage += exe;
errorMessage += ": failed to run.";
}
if(errorMessage.size())
{
cmFailed(errorMessage.c_str());
}
else
{
cmPassed("run Single Character executable A returned 10 as expected.");
}
lib += CMAKE_SHARED_MODULE_PREFIX;
lib += "CMakeTestModule";
lib += CMAKE_SHARED_MODULE_SUFFIX;
cmsys::DynamicLoader::LibraryHandle handle = cmDynamicLoader::OpenLibrary(lib.c_str());
if(!handle)
{
std::string err = "Can not open CMakeTestModule:\n";
err += lib;
cmFailed(err.c_str());
}
else
{
cmsys::DynamicLoader::SymbolPointer fun =
cmsys::DynamicLoader::GetSymbolAddress(handle, "ModuleFunction");
if(!fun)
{
fun = cmsys::DynamicLoader::GetSymbolAddress(handle, "_ModuleFunction");
}
typedef int (*TEST_FUNCTION)();
TEST_FUNCTION testFun = (TEST_FUNCTION)fun;
if(!testFun)
{
cmFailed("Could not find symbol ModuleFunction in library ");
}
else
{
int ret = (*testFun)();
if(!ret)
{
cmFailed("ModuleFunction call did not return valid return.");
}
cmPassed("Module loaded and ModuleFunction called correctly.");
}
}
cmDynamicLoader::FlushCache(); // fix memory leaks
if(sharedFunction() != 1)
{
cmFailed("Call to sharedFunction from shared library failed.");
}
else
{
cmPassed("Call to sharedFunction from shared library worked.");
}
if(CsharedFunction() != 1)
{
cmFailed("Call to C sharedFunction from shared library failed.");
}
else
{
cmPassed("Call to C sharedFunction from shared library worked.");
}
// ----------------------------------------------------------------------
// Test cmSystemTools::UpperCase
std::string str = "abc";
std::string strupper = "ABC";
if(cmSystemTools::UpperCase(str) == strupper)
{
cmPassed("cmSystemTools::UpperCase is working");
}
else
{
cmFailed("cmSystemTools::UpperCase is working");
}
#endif
#if 0 #if 0
if(NameConflictTest1() == 0 && NameConflictTest2() == 0) if(NameConflictTest1() == 0 && NameConflictTest2() == 0)
{ {
@ -839,8 +642,7 @@ int main()
"FILENAME_VAR_PATH_NAME is not defined."); "FILENAME_VAR_PATH_NAME is not defined.");
#else #else
if((strcmp(FILENAME_VAR_PATH_NAME, "Complex") == 0) || if((strcmp(FILENAME_VAR_PATH_NAME, "Complex") == 0) ||
(strcmp(FILENAME_VAR_PATH_NAME, "ComplexOneConfig") == 0) || (strcmp(FILENAME_VAR_PATH_NAME, "ComplexOneConfig") == 0))
(strcmp(FILENAME_VAR_PATH_NAME, "ComplexRelativePaths") == 0))
{ {
cmPassed("FILENAME_VAR_PATH_NAME == ", FILENAME_VAR_PATH_NAME); cmPassed("FILENAME_VAR_PATH_NAME == ", FILENAME_VAR_PATH_NAME);
} }
@ -901,8 +703,7 @@ int main()
"PATH_VAR_NAME is not defined."); "PATH_VAR_NAME is not defined.");
#else #else
if((strcmp(PATH_VAR_NAME, "Complex") == 0) || if((strcmp(PATH_VAR_NAME, "Complex") == 0) ||
(strcmp(PATH_VAR_NAME, "ComplexOneConfig") == 0) || (strcmp(PATH_VAR_NAME, "ComplexOneConfig") == 0))
(strcmp(PATH_VAR_NAME, "ComplexRelativePaths") == 0))
{ {
cmPassed("PATH_VAR_NAME == ", PATH_VAR_NAME); cmPassed("PATH_VAR_NAME == ", PATH_VAR_NAME);
} }
@ -984,7 +785,6 @@ int main()
} }
#endif #endif
#ifdef COMPLEX_TEST_CMAKELIB
// ---------------------------------------------------------------------- // ----------------------------------------------------------------------
// Some pre-build/pre-link/post-build custom-commands have been // Some pre-build/pre-link/post-build custom-commands have been
// attached to the lib (see Library/). // attached to the lib (see Library/).
@ -1030,7 +830,6 @@ int main()
// only created during a build. // only created during a build.
TestAndRemoveFile(BINARY_DIR "/Executable/Temp/complex-required.txt"); TestAndRemoveFile(BINARY_DIR "/Executable/Temp/complex-required.txt");
#endif
// ---------------------------------------------------------------------- // ----------------------------------------------------------------------
// Test FIND_LIBRARY // Test FIND_LIBRARY
@ -1197,11 +996,6 @@ int main()
cmPassed("CMake SET CACHE FORCE"); cmPassed("CMake SET CACHE FORCE");
#endif #endif
#ifdef COMPLEX_TEST_CMAKELIB
// Test the generated file stream.
TestCMGeneratedFileSTream();
#endif
#ifdef COMPLEX_TEST_LINK_STATIC #ifdef COMPLEX_TEST_LINK_STATIC
if(TestLinkGetType()) if(TestLinkGetType())
{ {
@ -1213,6 +1007,12 @@ int main()
} }
#endif #endif
#if defined(A_VALUE) && A_VALUE == 10
cmPassed("Single-character executable A worked.");
#else
cmFailed("Single-character executable A failed.");
#endif
// ---------------------------------------------------------------------- // ----------------------------------------------------------------------
// Summary // Summary

View File

@ -43,7 +43,6 @@ ENDIF(WIN32)
# #
SET(SharedLibrarySources sharedFile) SET(SharedLibrarySources sharedFile)
ADD_LIBRARY(CMakeTestLibraryShared SHARED ${SharedLibrarySources}) ADD_LIBRARY(CMakeTestLibraryShared SHARED ${SharedLibrarySources})
ADD_LIBRARY(CMakeTestModule MODULE moduleFile.c)
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DTEST_C_FLAGS") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DTEST_C_FLAGS")
ADD_LIBRARY(CMakeTestCLibraryShared SHARED testConly.c) ADD_LIBRARY(CMakeTestCLibraryShared SHARED testConly.c)
DEFINE_PROPERTY( DEFINE_PROPERTY(

View File

@ -1,6 +0,0 @@
#include "moduleFile.h"
int ModuleFunction()
{
return 1;
}

View File

@ -1,12 +0,0 @@
#if defined(_WIN32) || defined(WIN32) /* Win32 version */
#ifdef CMakeTestModule_EXPORTS
# define CMakeTest_EXPORT __declspec(dllexport)
#else
# define CMakeTest_EXPORT __declspec(dllimport)
#endif
#else
/* unix needs nothing */
#define CMakeTest_EXPORT
#endif
CMakeTest_EXPORT int ModuleFunction();

View File

@ -4,8 +4,6 @@
#cmakedefine ONE_VAR_IS_DEFINED #cmakedefine ONE_VAR_IS_DEFINED
#cmakedefine ZERO_VAR #cmakedefine ZERO_VAR
#cmakedefine COMPLEX_TEST_CMAKELIB
#define STRING_VAR "${STRING_VAR}" #define STRING_VAR "${STRING_VAR}"
// Test FOREACH // Test FOREACH

File diff suppressed because one or more lines are too long

View File

@ -1,34 +0,0 @@
# This is the CMakeCache file.
# For build in directory: d:/build/kitware/cmake/CMake-nmake/Tests/Complex
# You can edit this file to change values found and used by cmake.
# If you do not want to change any of the values, simply exit the editor.
# If you do want to change a value, simply edit, save, and exit the editor.
# The syntax for the file is as follows:
# KEY:TYPE=VALUE
# KEY is the name of a varible in the cache.
# TYPE is a hint to GUI's for the type of VALUE, DO NOT EDIT TYPE!.
# VALUE is the current value for the KEY.
########################
# EXTERNAL cache entries
########################
//A var.
CACHE_TEST_VAR1:STRING=foo
//A var.
CACHE_TEST_VAR2:FILEPATH=bar
//A var.
CACHE_TEST_VAR3:BOOL=1
//A var.
CACHE_TEST_VAR_EXCLUDED:BOOL=1
########################
# INTERNAL cache entries
########################
//A var.
CACHE_TEST_VAR_INTERNAL:INTERNAL=bar

View File

@ -1,7 +0,0 @@
// Include code from a header that should not be compiled separately.
#include "A.hh"
int main()
{
return A();
}

View File

@ -1,4 +0,0 @@
// This header should not be compiled directly but through inclusion
// in A.cxx through A.hh.
extern int A();
int A() { return 10; }

View File

@ -1,2 +0,0 @@
// This header should not be compiled directly but through inclusion in A.cxx
#include "A.h"

View File

@ -1 +0,0 @@
This file should not be compiled!

View File

@ -1,183 +0,0 @@
CMAKE_MINIMUM_REQUIRED(VERSION 1.3)
#
# Create exe.
#
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DTEST_CXX_FLAGS")
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DTEST_C_FLAGS")
IF(COMPLEX_TEST_CMAKELIB)
# Link to CMake lib
LINK_DIRECTORIES(${Complex_BINARY_DIR}/../../Source)
LINK_DIRECTORIES(${Complex_BINARY_DIR}/../../Source/kwsys)
LINK_DIRECTORIES(${Complex_BINARY_DIR}/../../Utilities/cmexpat)
LINK_DIRECTORIES(${Complex_BINARY_DIR}/../../Utilities/cmzlib)
# prefer the new curl if it is around
IF(EXISTS ${Complex_BINARY_DIR}/../../Utilities/cmcurl-7.19.0)
LINK_DIRECTORIES(${Complex_BINARY_DIR}/../../Utilities/cmcurl-7.19.0/lib)
ENDIF(EXISTS ${Complex_BINARY_DIR}/../../Utilities/cmcurl-7.19.0)
IF(EXISTS ${Complex_BINARY_DIR}/../../Utilities/cmcurl)
LINK_DIRECTORIES(${Complex_BINARY_DIR}/../../Utilities/cmcurl)
ENDIF(EXISTS ${Complex_BINARY_DIR}/../../Utilities/cmcurl)
LINK_DIRECTORIES(
${Complex_BINARY_DIR}/../../Utilities/cmlibarchive/libarchive
${Complex_BINARY_DIR}/../../Utilities/cmbzip2
)
ENDIF(COMPLEX_TEST_CMAKELIB)
# Create an imported target for if(TARGET) test below.
ADD_LIBRARY(ExeImportedTarget UNKNOWN IMPORTED)
# Test if(TARGET) command.
IF(NOT TARGET CMakeTestLibrary)
MESSAGE(FATAL_ERROR "IF(NOT TARGET CMakeTestLibrary) returned true!")
ENDIF(NOT TARGET CMakeTestLibrary)
IF(NOT TARGET ExeImportedTarget)
MESSAGE(FATAL_ERROR "IF(NOT TARGET ExeImportedTarget) returned true!")
ENDIF(NOT TARGET ExeImportedTarget)
IF(TARGET LibImportedTarget)
MESSAGE(FATAL_ERROR "IF(TARGET LibImportedTarget) returned true!")
ENDIF(TARGET LibImportedTarget)
IF(TARGET NotATarget)
MESSAGE(FATAL_ERROR "IF(TARGET NotATarget) returned true!")
ENDIF(TARGET NotATarget)
# Use LINK_LIBRARIES instead of TARGET_LINK_LIBRARIES to
SET(COMPLEX_LIBS CMakeTestLibrary;CMakeTestLibraryShared;CMakeTestCLibraryShared)
LINK_LIBRARIES(${COMPLEX_LIBS})
# Test forcing a .cxx file to not build.
SET_SOURCE_FILES_PROPERTIES(complex_nobuild.cxx PROPERTIES
HEADER_FILE_ONLY 1)
ADD_EXECUTABLE(A A.cxx A.hh A.h A.txt)
ADD_EXECUTABLE(complex complex testcflags.c )
# Sub1/NameConflictTest.c Sub2/NameConflictTest.c)
ADD_EXECUTABLE(complex.file complex.file.cxx complex_nobuild.cxx)
IF(COMPLEX_TEST_CMAKELIB)
TARGET_LINK_LIBRARIES(complex CMakeLib cmsys cmexpat cmzlib cmlibarchive cmbzip2 cmcurl)
ENDIF(COMPLEX_TEST_CMAKELIB)
IF (UNIX)
TARGET_LINK_LIBRARIES(complex ${CMAKE_DL_LIBS})
ELSE(UNIX)
IF (NOT BORLAND)
IF(NOT MINGW)
TARGET_LINK_LIBRARIES(complex rpcrt4.lib)
ENDIF(NOT MINGW)
ENDIF(NOT BORLAND)
ENDIF (UNIX)
# Test linking to static lib when a shared lib has the same name.
IF(CMAKE_EXE_LINK_STATIC_CXX_FLAGS)
ADD_DEFINITIONS(-DCOMPLEX_TEST_LINK_STATIC)
TARGET_LINK_LIBRARIES(complex CMakeTestLinkStatic)
ENDIF(CMAKE_EXE_LINK_STATIC_CXX_FLAGS)
# can we get the path to a source file
GET_SOURCE_FILE_PROPERTY(A_LOCATION A.cxx LOCATION)
IF ("${A_LOCATION}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}/A.cxx")
ADD_DEFINITIONS(-DCMAKE_FOUND_ACXX)
ENDIF ("${A_LOCATION}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}/A.cxx")
# get the directory parent
GET_DIRECTORY_PROPERTY(P_VALUE PARENT_DIRECTORY)
IF ("${P_VALUE}" STREQUAL "${CMAKE_SOURCE_DIR}")
ADD_DEFINITIONS(-DCMAKE_FOUND_PARENT)
ENDIF ("${P_VALUE}" STREQUAL "${CMAKE_SOURCE_DIR}")
# get the stack of listfiles
INCLUDE(Included.cmake)
IF ("${LF_VALUE}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt;${CMAKE_CURRENT_SOURCE_DIR}/Included.cmake")
ADD_DEFINITIONS(-DCMAKE_FOUND_LISTFILE_STACK)
ENDIF ("${LF_VALUE}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt;${CMAKE_CURRENT_SOURCE_DIR}/Included.cmake")
# Test add/remove definitions.
ADD_DEFINITIONS(
-DCOMPLEX_DEFINED_PRE
-DCOMPLEX_DEFINED
-DCOMPLEX_DEFINED_POST
-DCOMPLEX_DEFINED
)
REMOVE_DEFINITIONS(-DCOMPLEX_DEFINED)
# Test pre-build/pre-link/post-build rules for an executable.
ADD_CUSTOM_COMMAND(TARGET complex PRE_BUILD
COMMAND ${CREATE_FILE_EXE}
ARGS "${Complex_BINARY_DIR}/Executable/prebuild.txt")
ADD_CUSTOM_COMMAND(TARGET complex PRE_BUILD
COMMAND ${CREATE_FILE_EXE}
ARGS "${Complex_BINARY_DIR}/Executable/prelink.txt")
ADD_CUSTOM_COMMAND(TARGET complex POST_BUILD
COMMAND ${CREATE_FILE_EXE}
ARGS "${Complex_BINARY_DIR}/Executable/postbuild.txt")
ADD_CUSTOM_COMMAND(TARGET complex POST_BUILD
COMMAND ${CMAKE_COMMAND}
ARGS -E copy
"${Complex_BINARY_DIR}/Executable/postbuild.txt"
"${Complex_BINARY_DIR}/Executable/postbuild2.txt")
SET_SOURCE_FILES_PROPERTIES(complex
COMPILE_FLAGS
"-DFILE_HAS_EXTRA_COMPILE_FLAGS"
#" -DFILE_DEFINE_STRING=\\\"hello\\\""
OBJECT_DEPENDS ${Complex_BINARY_DIR}/cmTestGeneratedHeader.h
)
SET_TARGET_PROPERTIES(complex PROPERTIES COMPILE_FLAGS "-DCOMPLEX_TARGET_FLAG")
ADD_CUSTOM_COMMAND(
TARGET complex
SOURCE ${Complex_SOURCE_DIR}/cmTestGeneratedHeader.h.in
COMMAND ${CMAKE_COMMAND}
ARGS -E copy ${Complex_SOURCE_DIR}/cmTestGeneratedHeader.h.in
${Complex_BINARY_DIR}/cmTestGeneratedHeader.h
OUTPUTS ${Complex_BINARY_DIR}/cmTestGeneratedHeader.h
DEPENDS ${CMAKE_COMMAND}
)
# Test creating an executable that is not built by default.
ADD_EXECUTABLE(notInAllExe EXCLUDE_FROM_ALL notInAllExe.cxx)
TARGET_LINK_LIBRARIES(notInAllExe notInAllLib)
# Test user-value flag mapping for the VS IDE.
IF(MSVC)
SET_TARGET_PROPERTIES(notInAllExe PROPERTIES
LINK_FLAGS "/NODEFAULTLIB:LIBC;LIBCMT;MSVCRT")
ENDIF(MSVC)
# Test creating a custom target that builds not-in-all targets.
ADD_CUSTOM_TARGET(notInAllCustom)
ADD_DEPENDENCIES(notInAllCustom notInAllExe)
#
# Output the files required by 'complex' to a file.
#
# This test has been moved to the 'required' subdir so that it
# has no side-effects on the current Makefile (duplicated source file
# due to source list expansion done twice).
#
ADD_SUBDIRECTORY(Temp)
IF(CMAKE_COMPILER_IS_GNUCXX AND CMAKE_INCLUDE_SYSTEM_FLAG_CXX)
ADD_EXECUTABLE(testSystemDir testSystemDir.cxx)
SET_TARGET_PROPERTIES(testSystemDir PROPERTIES COMPILE_FLAGS "-Werror")
ENDIF(CMAKE_COMPILER_IS_GNUCXX AND CMAKE_INCLUDE_SYSTEM_FLAG_CXX)
#
# Extra coverage.Not used.
#
INSTALL_TARGETS(/tmp complex)
INSTALL_PROGRAMS(/tmp complex)
CONFIGURE_FILE(
${Complex_SOURCE_DIR}/Executable/cmVersion.h.in
${Complex_BINARY_DIR}/cmVersion.h)
SOURCE_GROUP(A_GROUP ".cxx")
SOURCE_GROUP(B_GROUP REGULAR_EXPRESSION "cxx")
SOURCE_GROUP(C_GROUP FILES complex.cxx)
FILE(WRITE ${Complex_BINARY_DIR}/A/libA.a "test")
FILE(WRITE ${Complex_BINARY_DIR}/A/libC.a "test")
FILE(WRITE ${Complex_BINARY_DIR}/B/libB.a "test")
FILE(WRITE ${Complex_BINARY_DIR}/B/libA.a "test")
FILE(WRITE ${Complex_BINARY_DIR}/C/libC.a "test")
FILE(WRITE ${Complex_BINARY_DIR}/C/libB.a "test")

View File

@ -1,2 +0,0 @@
GET_DIRECTORY_PROPERTY(LF_VALUE LISTFILE_STACK)

View File

@ -1,4 +0,0 @@
int NameConflictTest1()
{
return 0;
}

View File

@ -1,4 +0,0 @@
int NameConflictTest2()
{
return 0;
}

View File

@ -1,8 +0,0 @@
#
# Output the files required by 'complex' to a file.
# The 'complex' executable will then test if this file exists and remove it.
# The contents of this file is not tested (absolute paths).
#
OUTPUT_REQUIRED_FILES(
${Complex_SOURCE_DIR}/Executable/complex.cxx
${Complex_BINARY_DIR}/Executable/Temp/complex-required.txt)

View File

@ -1 +0,0 @@
#define CMAKE_MINIMUM_REQUIRED_VERSION "${CMAKE_MINIMUM_REQUIRED_VERSION}"

File diff suppressed because it is too large Load Diff

View File

@ -1,8 +0,0 @@
#if 0
#include "cmMissingHeader.h"
#endif
int main(int , char**)
{
return 0;
}

View File

@ -1,10 +0,0 @@
extern int notInAllLibFunc();
int main()
{
return notInAllLibFunc();
}
#if 1
# error "This target should not be compiled by ALL."
#endif

View File

@ -1,3 +0,0 @@
#include <testSystemDir.h>
int main() { return foo(); }

View File

@ -1,26 +0,0 @@
#include <string.h>
int TestTargetCompileFlags(char* m)
{
#ifndef COMPLEX_TARGET_FLAG
strcpy(m, "CMAKE SET_TARGET_PROPERTIES COMPILE_FLAGS did not work");
return 0;
#endif
strcpy(m, "CMAKE SET_TARGET_PROPERTIES COMPILE_FLAGS worked");
return 1;
}
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;
}

View File

@ -1,141 +0,0 @@
REMOVE_DEFINITIONS(-DCMAKE_IS_REALLY_FUN)
#
# Small utility used to create file
# UTILITY_SOURCE is used for coverage and for getting the exact name
# of the executable.
#
UTILITY_SOURCE(CREATE_FILE_EXE create_file "." create_file.cxx)
ADD_EXECUTABLE(create_file create_file.cxx)
SET_TARGET_PROPERTIES(create_file PROPERTIES RUNTIME_OUTPUT_DIRECTORY ".")
#
# Create static library
# SOURCE_FILES_REMOVE is used for Coverage. empty.h is included for coverage
#
AUX_SOURCE_DIRECTORY(ExtraSources LibrarySources)
SET(LibrarySources ${LibrarySources}
file2
empty
create_file.cxx
GENERATED
nonexisting_file)
REMOVE(LibrarySources create_file.cxx GENERATED nonexisting_file)
ADD_LIBRARY(CMakeTestLibrary ${LibrarySources})
IF(WIN32)
IF(NOT CYGWIN)
IF(NOT BORLAND)
IF(NOT MINGW)
TARGET_LINK_LIBRARIES(CMakeTestLibrary
debug
user32.lib)
TARGET_LINK_LIBRARIES(CMakeTestLibrary
optimized
kernel32.lib)
ENDIF(NOT MINGW)
ENDIF(NOT BORLAND)
ENDIF(NOT CYGWIN)
ENDIF(WIN32)
#
# Create shared library
#
SET(SharedLibrarySources sharedFile)
ADD_LIBRARY(CMakeTestLibraryShared SHARED ${SharedLibrarySources})
ADD_LIBRARY(CMakeTestModule MODULE moduleFile.c)
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DTEST_C_FLAGS")
ADD_LIBRARY(CMakeTestCLibraryShared SHARED testConly.c)
DEFINE_PROPERTY(
TARGET PROPERTY FOO
BRIEF_DOCS "a test property"
FULL_DOCS "A simple etst proerty that means nothign and is used for nothing"
)
SET_TARGET_PROPERTIES(CMakeTestCLibraryShared PROPERTIES FOO BAR)
IF(NOT BEOS AND NOT WIN32) # No libm on BeOS.
SET_TARGET_PROPERTIES(CMakeTestCLibraryShared PROPERTIES LINK_FLAGS "-lm")
ENDIF(NOT BEOS AND NOT WIN32)
GET_TARGET_PROPERTY(FOO_BAR_VAR CMakeTestCLibraryShared FOO)
IF(${FOO_BAR_VAR} MATCHES "BAR")
ELSE(${FOO_BAR_VAR} MATCHES "BAR")
MESSAGE(SEND_ERROR "SET_TARGET_PROPERTIES or GET_TARGET_PROPERTY failed, FOO_BAR_VAR should be BAR, but is ${FOO_BAR_VAR}")
ENDIF(${FOO_BAR_VAR} MATCHES "BAR")
# Create static and shared lib of same name.
IF(CMAKE_EXE_LINK_STATIC_CXX_FLAGS)
ADD_LIBRARY(CMakeTestLinkStatic STATIC TestLink.c)
ADD_LIBRARY(CMakeTestLinkShared SHARED TestLink.c)
SET_TARGET_PROPERTIES(CMakeTestLinkStatic CMakeTestLinkShared
PROPERTIES OUTPUT_NAME CMakeTestLink)
ENDIF(CMAKE_EXE_LINK_STATIC_CXX_FLAGS)
#
# Attach pre-build/pre-link/post-build custom-commands to the lib.
# Each runs ${CREATE_FILE_EXE} which will create a file.
# The 'complex' executable will then test if this file exists and remove it.
#
ADD_DEPENDENCIES(CMakeTestLibraryShared create_file)
MESSAGE("complex bin dir is ${Complex_BINARY_DIR}")
ADD_CUSTOM_COMMAND(TARGET CMakeTestLibraryShared PRE_BUILD
COMMAND ${CREATE_FILE_EXE}
ARGS "${Complex_BINARY_DIR}/Library/prebuild.txt")
ADD_CUSTOM_COMMAND(TARGET CMakeTestLibraryShared PRE_BUILD
COMMAND ${CREATE_FILE_EXE}
ARGS "${Complex_BINARY_DIR}/Library/prelink.txt")
ADD_CUSTOM_COMMAND(TARGET CMakeTestLibraryShared POST_BUILD
COMMAND ${CREATE_FILE_EXE}
ARGS "${Complex_BINARY_DIR}/Library/postbuild.txt")
ADD_CUSTOM_COMMAND(TARGET CMakeTestLibraryShared POST_BUILD
COMMAND ${CMAKE_COMMAND}
ARGS -E copy
"${Complex_BINARY_DIR}/Library/postbuild.txt"
"${Complex_BINARY_DIR}/Library/postbuild2.txt")
#
# Add a custom target.
# It runs ${CREATE_FILE_EXE} which will create a file.
# The 'complex' executable will then test if this file exists and remove it.
#
ADD_CUSTOM_TARGET(custom_target1
ALL
${CREATE_FILE_EXE}
"${Complex_BINARY_DIR}/Library/custom_target1.txt")
ADD_DEPENDENCIES(custom_target1 create_file)
#
# Extra coverage
#
SET_SOURCE_FILES_PROPERTIES(file2 PROPERTIES ABSTRACT 1)
INSTALL_FILES(/tmp .h ${Complex_BINARY_DIR}/cmTestConfigure.h)
INSTALL_FILES(/tmp .cxx ${Complex_BINARY_DIR}/cmTestConfigure.h)
# Test creating a library that is not built by default.
ADD_LIBRARY(notInAllLib EXCLUDE_FROM_ALL notInAllLib.cxx)
# Create an imported target for if(TARGET) test in Executable dir.
# That test should not see this target.
ADD_LIBRARY(LibImportedTarget UNKNOWN IMPORTED)
# Test generation of preprocessed sources.
IF("${CMAKE_GENERATOR}" MATCHES "Makefile" AND CMAKE_MAKE_PROGRAM)
IF(CMAKE_CXX_CREATE_PREPROCESSED_SOURCE)
# Skip running this part of the test on certain platforms
# until they are fixed.
SET(MAYBE_ALL ALL)
LIST(LENGTH CMAKE_OSX_ARCHITECTURES ARCH_COUNT)
IF(ARCH_COUNT GREATER 1)
# OSX does not support preprocessing more than one architecture.
SET(MAYBE_ALL)
ENDIF(ARCH_COUNT GREATER 1)
# Custom target to try preprocessing invocation.
ADD_CUSTOM_TARGET(test_preprocess ${MAYBE_ALL}
COMMAND ${CMAKE_COMMAND} -E remove CMakeFiles/create_file.dir/create_file.i
COMMAND ${CMAKE_MAKE_PROGRAM} create_file.i
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_SOURCE_DIR}/test_preprocess.cmake
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)
ENDIF(CMAKE_CXX_CREATE_PREPROCESSED_SOURCE)
ENDIF("${CMAKE_GENERATOR}" MATCHES "Makefile" AND CMAKE_MAKE_PROGRAM)

View File

@ -1,4 +0,0 @@
int file1()
{
return 1;
}

View File

@ -1 +0,0 @@
int file1();

View File

@ -1,2 +0,0 @@
// Purposely leave off the return type to create a warning.
foo() { return 0; }

View File

@ -1,8 +0,0 @@
int TestLinkGetType()
{
#ifdef CMakeTestLinkShared_EXPORTS
return 0;
#else
return 1;
#endif
}

View File

@ -1,28 +0,0 @@
#include <stdio.h>
#include <stdlib.h>
int main (int argc, char *argv[])
{
if (argc < 2)
{
fprintf(stderr, "Missing name of file to create.\n");
return EXIT_FAILURE;
}
FILE *stream = fopen(argv[1], "w");
if(stream == NULL)
{
fprintf(stderr, "Unable to open %s for writing!\n", argv[1]);
return EXIT_FAILURE;
}
if(fclose(stream))
{
fprintf(stderr, "Unable to close %s!\n", argv[1]);
return EXIT_FAILURE;
}
fprintf(stdout, ">> Creating %s!\n", argv[1]);
return EXIT_SUCCESS;
}

View File

@ -1,10 +0,0 @@
#include <string.h>
#ifdef CMAKE_IS_REALLY_FUN
This is a problem. Looks like REMOVE_DEFINITION does not work
#endif
int file2()
{
return 1;
}

View File

@ -1 +0,0 @@
int file2();

View File

@ -1,6 +0,0 @@
#include "moduleFile.h"
int ModuleFunction()
{
return 1;
}

View File

@ -1,12 +0,0 @@
#if defined(_WIN32) || defined(WIN32) /* Win32 version */
#ifdef CMakeTestModule_EXPORTS
# define CMakeTest_EXPORT __declspec(dllexport)
#else
# define CMakeTest_EXPORT __declspec(dllimport)
#endif
#else
/* unix needs nothing */
#define CMakeTest_EXPORT
#endif
CMakeTest_EXPORT int ModuleFunction();

View File

@ -1,5 +0,0 @@
int notInAllLibFunc() { return 0; }
#if 1
# error "This target should not be compiled by ALL."
#endif

View File

@ -1,6 +0,0 @@
#include "sharedFile.h"
int sharedFunction()
{
return 1;
}

View File

@ -1,12 +0,0 @@
#if defined(_WIN32) || defined(WIN32) /* Win32 version */
#ifdef CMakeTestLibraryShared_EXPORTS
# define CMakeTest_EXPORT __declspec(dllexport)
#else
# define CMakeTest_EXPORT __declspec(dllimport)
#endif
#else
/* unix needs nothing */
#define CMakeTest_EXPORT
#endif
CMakeTest_EXPORT int sharedFunction();

View File

@ -1,13 +0,0 @@
#include "testConly.h"
#include <stdio.h>
int CsharedFunction()
{
#ifndef TEST_C_FLAGS
printf("TEST_C_FLAGS failed\n");
return 0;
#else
printf("Passed: TEST_C_FLAGS passed\n");
#endif
return 1;
}

View File

@ -1,13 +0,0 @@
#if defined(_WIN32) || defined(WIN32) /* Win32 version */
#ifdef CMakeTestCLibraryShared_EXPORTS
# define CMakeTest_EXPORT __declspec(dllexport)
#else
# define CMakeTest_EXPORT __declspec(dllimport)
#endif
#else
/* unix needs nothing */
#define CMakeTest_EXPORT
#endif
CMakeTest_EXPORT int CsharedFunction();

View File

@ -1,7 +0,0 @@
SET(TEST_FILE CMakeFiles/create_file.dir/create_file.i)
FILE(READ ${TEST_FILE} CONTENTS)
IF("${CONTENTS}" MATCHES "Unable to close")
MESSAGE(STATUS "${TEST_FILE} created successfully!")
ELSE("${CONTENTS}" MATCHES "Unable to close")
MESSAGE(FATAL_ERROR "${TEST_FILE} creation failed!")
ENDIF("${CONTENTS}" MATCHES "Unable to close")

View File

@ -1,198 +0,0 @@
#
# Test SET
#
SET (ZERO_VAR 0)
SET (ZERO_VAR2 0)
IF(ZERO_VAR)
ADD_DEFINITIONS(-DSHOULD_NOT_BE_DEFINED)
ELSE(ZERO_VAR)
ADD_DEFINITIONS(-DSHOULD_BE_DEFINED)
ENDIF(ZERO_VAR)
SET(ONE_VAR 1)
SET(ONE_VAR2 1)
SET(STRING_VAR "CMake is great" CACHE STRING "test a cache variable")
#
# Test VARIABLE_REQUIRES
#
VARIABLE_REQUIRES(ONE_VAR
ONE_VAR_IS_DEFINED ONE_VAR)
#
# Test various IF/ELSE combinations
#
IF(NOT ZERO_VAR)
ADD_DEFINITIONS(-DSHOULD_BE_DEFINED_NOT)
ELSE(NOT ZERO_VAR)
ADD_DEFINITIONS(-DSHOULD_NOT_BE_DEFINED_NOT)
ENDIF(NOT ZERO_VAR)
IF(NOT ONE_VAR)
ADD_DEFINITIONS(-DSHOULD_NOT_BE_DEFINED_NOT2)
ELSE(NOT ONE_VAR)
ADD_DEFINITIONS(-DSHOULD_BE_DEFINED_NOT2)
ENDIF(NOT ONE_VAR)
IF(ONE_VAR AND ONE_VAR2)
ADD_DEFINITIONS(-DSHOULD_BE_DEFINED_AND)
ELSE(ONE_VAR AND ONE_VAR2)
ADD_DEFINITIONS(-DSHOULD_NOT_BE_DEFINED_AND)
ENDIF(ONE_VAR AND ONE_VAR2)
IF(ONE_VAR AND ZERO_VAR)
ADD_DEFINITIONS(-DSHOULD_NOT_BE_DEFINED_AND2)
ELSE(ONE_VAR AND ZERO_VAR)
ADD_DEFINITIONS(-DSHOULD_BE_DEFINED_AND2)
ENDIF(ONE_VAR AND ZERO_VAR)
IF(ZERO_VAR OR ONE_VAR2)
ADD_DEFINITIONS(-DSHOULD_BE_DEFINED_OR)
ELSE(ZERO_VAR OR ONE_VAR2)
ADD_DEFINITIONS(-DSHOULD_NOT_BE_DEFINED_OR)
ENDIF(ZERO_VAR OR ONE_VAR2)
IF(ZERO_VAR OR ZERO_VAR2)
ADD_DEFINITIONS(-DSHOULD_NOT_BE_DEFINED_OR2)
ELSE(ZERO_VAR OR ZERO_VAR2)
ADD_DEFINITIONS(-DSHOULD_BE_DEFINED_OR2)
ENDIF(ZERO_VAR OR ZERO_VAR2)
IF(STRING_VAR MATCHES "^CMake")
ADD_DEFINITIONS(-DSHOULD_BE_DEFINED_MATCHES)
ELSE(STRING_VAR MATCHES "^CMake")
ADD_DEFINITIONS(-DSHOULD_NOT_BE_DEFINED_MATCHES)
ENDIF(STRING_VAR MATCHES "^CMake")
IF(STRING_VAR MATCHES "^foo")
ADD_DEFINITIONS(-DSHOULD_NOT_BE_DEFINED_MATCHES2)
ELSE(STRING_VAR MATCHES "^foo")
ADD_DEFINITIONS(-DSHOULD_BE_DEFINED_MATCHES2)
ENDIF(STRING_VAR MATCHES "^foo")
IF(COMMAND "IF")
ADD_DEFINITIONS(-DSHOULD_BE_DEFINED_COMMAND)
ELSE(COMMAND "IF")
ADD_DEFINITIONS(-DSHOULD_NOT_BE_DEFINED_COMMAND)
ENDIF(COMMAND "IF")
IF(COMMAND "ROQUEFORT")
ADD_DEFINITIONS(-DSHOULD_NOT_BE_DEFINED_COMMAND2)
ELSE(COMMAND "ROQUEFORT")
ADD_DEFINITIONS(-DSHOULD_BE_DEFINED_COMMAND2)
ENDIF(COMMAND "ROQUEFORT")
IF (EXISTS ${Complex_SOURCE_DIR}/VarTests.cmake)
ADD_DEFINITIONS(-DSHOULD_BE_DEFINED_EXISTS)
ELSE(EXISTS ${Complex_SOURCE_DIR}/VarTests.cmake)
ADD_DEFINITIONS(-DSHOULD_NOT_BE_DEFINED_EXISTS)
ENDIF (EXISTS ${Complex_SOURCE_DIR}/VarTests.cmake)
IF (EXISTS ${Complex_SOURCE_DIR}/roquefort.txt)
ADD_DEFINITIONS(-DSHOULD_NOT_BE_DEFINED_EXISTS2)
ELSE(EXISTS ${Complex_SOURCE_DIR}/roquefort.txt)
ADD_DEFINITIONS(-DSHOULD_BE_DEFINED_EXISTS2)
ENDIF (EXISTS ${Complex_SOURCE_DIR}/roquefort.txt)
IF (IS_DIRECTORY ${Complex_SOURCE_DIR})
ADD_DEFINITIONS(-DSHOULD_BE_DEFINED_IS_DIRECTORY)
ENDIF (IS_DIRECTORY ${Complex_SOURCE_DIR})
IF (NOT IS_DIRECTORY ${Complex_SOURCE_DIR}/VarTests.cmake)
ADD_DEFINITIONS(-DSHOULD_BE_DEFINED_IS_DIRECTORY2)
ENDIF (NOT IS_DIRECTORY ${Complex_SOURCE_DIR}/VarTests.cmake)
SET (SNUM1_VAR "1")
SET (SNUM2_VAR "2")
SET (SNUM3_VAR "1")
IF (SNUM1_VAR LESS SNUM2_VAR)
ADD_DEFINITIONS(-DSHOULD_BE_DEFINED_LESS)
ELSE (SNUM1_VAR LESS SNUM2_VAR)
ADD_DEFINITIONS(-DSHOULD_NOT_BE_DEFINED_LESS)
ENDIF (SNUM1_VAR LESS SNUM2_VAR)
IF (SNUM2_VAR LESS SNUM1_VAR)
ADD_DEFINITIONS(-DSHOULD_NOT_BE_DEFINED_LESS2)
ELSE (SNUM2_VAR LESS SNUM1_VAR)
ADD_DEFINITIONS(-DSHOULD_BE_DEFINED_LESS2)
ENDIF (SNUM2_VAR LESS SNUM1_VAR)
IF (SNUM2_VAR GREATER SNUM1_VAR)
ADD_DEFINITIONS(-DSHOULD_BE_DEFINED_GREATER)
ELSE (SNUM2_VAR GREATER SNUM1_VAR)
ADD_DEFINITIONS(-DSHOULD_NOT_BE_DEFINED_GREATER)
ENDIF (SNUM2_VAR GREATER SNUM1_VAR)
IF (SNUM2_VAR EQUAL SNUM1_VAR)
ADD_DEFINITIONS(-DSHOULD_NOT_BE_DEFINED_EQUAL)
ELSE (SNUM2_VAR EQUAL SNUM1_VAR)
ADD_DEFINITIONS(-DSHOULD_BE_DEFINED_EQUAL)
ENDIF (SNUM2_VAR EQUAL SNUM1_VAR)
IF (SNUM3_VAR EQUAL SNUM1_VAR)
ADD_DEFINITIONS(-DSHOULD_BE_DEFINED_EQUAL)
ELSE (SNUM3_VAR EQUAL SNUM1_VAR)
ADD_DEFINITIONS(-DSHOULD_NOT_BE_DEFINED_EQUAL)
ENDIF (SNUM3_VAR EQUAL SNUM1_VAR)
IF (SNUM1_VAR GREATER SNUM2_VAR)
ADD_DEFINITIONS(-DSHOULD_NOT_BE_DEFINED_GREATER2)
ELSE (SNUM1_VAR GREATER SNUM2_VAR)
ADD_DEFINITIONS(-DSHOULD_BE_DEFINED_GREATER2)
ENDIF (SNUM1_VAR GREATER SNUM2_VAR)
SET (SSTR1_VAR "abc")
SET (SSTR2_VAR "bcd")
IF (SSTR1_VAR STRLESS SSTR2_VAR)
ADD_DEFINITIONS(-DSHOULD_BE_DEFINED_STRLESS)
ELSE (SSTR1_VAR STRLESS SSTR2_VAR)
ADD_DEFINITIONS(-DSHOULD_NOT_BE_DEFINED_STRLESS)
ENDIF (SSTR1_VAR STRLESS SSTR2_VAR)
IF (SSTR2_VAR STRLESS SSTR1_VAR)
ADD_DEFINITIONS(-DSHOULD_NOT_BE_DEFINED_STRLESS2)
ELSE (SSTR2_VAR STRLESS SSTR1_VAR)
ADD_DEFINITIONS(-DSHOULD_BE_DEFINED_STRLESS2)
ENDIF (SSTR2_VAR STRLESS SSTR1_VAR)
IF (SSTR2_VAR STRGREATER SSTR1_VAR)
ADD_DEFINITIONS(-DSHOULD_BE_DEFINED_STRGREATER)
ELSE (SSTR2_VAR STRGREATER SSTR1_VAR)
ADD_DEFINITIONS(-DSHOULD_NOT_BE_DEFINED_STRGREATER)
ENDIF (SSTR2_VAR STRGREATER SSTR1_VAR)
IF (SSTR1_VAR STRGREATER SSTR2_VAR)
ADD_DEFINITIONS(-DSHOULD_NOT_BE_DEFINED_STRGREATER2)
ELSE (SSTR1_VAR STRGREATER SSTR2_VAR)
ADD_DEFINITIONS(-DSHOULD_BE_DEFINED_STRGREATER2)
ENDIF (SSTR1_VAR STRGREATER SSTR2_VAR)
#
# Test FOREACH
#
FOREACH (INDEX 1 2)
SET(FOREACH_VAR${INDEX} "VALUE${INDEX}")
ENDFOREACH(INDEX)
SET(FOREACH_CONCAT "")
FOREACH (INDEX a;b;c;d;e;f;g)
SET(FOREACH_CONCAT "${FOREACH_CONCAT}${INDEX}")
ENDFOREACH(INDEX)
#
# Test FIND_FILE, FIND_PATH and various GET_FILENAME_COMPONENT combinations
#
FIND_FILE(FILENAME_VAR "VarTests.cmake" ${Complex_SOURCE_DIR})
GET_FILENAME_COMPONENT(FILENAME_VAR_PATH ${FILENAME_VAR} PATH)
GET_FILENAME_COMPONENT(FILENAME_VAR_PATH_NAME ${FILENAME_VAR_PATH} NAME)
GET_FILENAME_COMPONENT(FILENAME_VAR_NAME ${FILENAME_VAR} NAME)
GET_FILENAME_COMPONENT(FILENAME_VAR_EXT ${FILENAME_VAR} EXT)
GET_FILENAME_COMPONENT(FILENAME_VAR_NAME_WE ${FILENAME_VAR} NAME_WE CACHE)
FIND_PATH(PATH_VAR "cmTestConfigure.h.in" ${Complex_SOURCE_DIR})
GET_FILENAME_COMPONENT(PATH_VAR_NAME ${PATH_VAR} NAME)

View File

@ -1,87 +0,0 @@
// Test SET, VARIABLE_REQUIRES
#cmakedefine ONE_VAR
#cmakedefine ONE_VAR_IS_DEFINED
#cmakedefine ZERO_VAR
#cmakedefine COMPLEX_TEST_CMAKELIB
#define STRING_VAR "${STRING_VAR}"
// Test FOREACH
#define FOREACH_VAR1 "${FOREACH_VAR1}"
#define FOREACH_VAR2 "${FOREACH_VAR2}"
#define FOREACH_CONCAT "${FOREACH_CONCAT}"
// Test WHILE
#define WHILE_VALUE ${while_var}
// Test FIND_FILE, FIND_PATH and various GET_FILENAME_COMPONENT combinations
#define FILENAME_VAR_PATH_NAME "${FILENAME_VAR_PATH_NAME}"
#define FILENAME_VAR_NAME "${FILENAME_VAR_NAME}"
#define FILENAME_VAR_EXT "${FILENAME_VAR_EXT}"
#define FILENAME_VAR_NAME_WE "${FILENAME_VAR_NAME_WE}"
#define PATH_VAR_NAME "${PATH_VAR_NAME}"
// Test LOAD_CACHE
#define CACHE_TEST_VAR1 "${CACHE_TEST_VAR1}"
#define CACHE_TEST_VAR2 "${CACHE_TEST_VAR2}"
#define CACHE_TEST_VAR3 "${CACHE_TEST_VAR3}"
#cmakedefine CACHE_TEST_VAR_EXCLUDED
#define CACHE_TEST_VAR_INTERNAL "${CACHE_TEST_VAR_INTERNAL}"
// Test internal CMake vars from C++ flags
#cmakedefine CMAKE_NO_STD_NAMESPACE
#cmakedefine CMAKE_NO_ANSI_STREAM_HEADERS
#cmakedefine CMAKE_NO_ANSI_STRING_STREAM
#cmakedefine CMAKE_NO_ANSI_FOR_SCOPE
#cmakedefine01 SHOULD_BE_ZERO
#cmakedefine01 SHOULD_BE_ONE
// Needed to check for files
#define BINARY_DIR "${Complex_BINARY_DIR}"
// Test FIND_LIBRARY
#define FIND_DUMMY_LIB "${FIND_DUMMY_LIB}"
// Test SET_SOURCE_FILES_PROPERTIES
#cmakedefine FILE_HAS_ABSTRACT
#cmakedefine FILE_HAS_WRAP_EXCLUDE
#define FILE_COMPILE_FLAGS "${FILE_COMPILE_FLAGS}"
#define TEST_SEP "${TEST_SEP}"
// Test registry read
#if defined(_WIN32) && !defined(__CYGWIN__)
#define REGISTRY_TEST_PATH "${REGISTRY_TEST_PATH}"
#endif
// Test Remove command
#define REMOVE_STRING "${REMOVE_STRING}"
// Test IF inside FOREACH
#cmakedefine IF_INSIDE_FOREACH_THEN_EXECUTED
#cmakedefine IF_INSIDE_FOREACH_ELSE_EXECUTED
// Test SET CACHE FORCE
#cmakedefine FORCE_TEST
#define CMAKE_GENERATOR "${CMAKE_GENERATOR}"
#define CMAKE_SHARED_MODULE_PREFIX "${CMAKE_SHARED_MODULE_PREFIX}"
#define CMAKE_SHARED_MODULE_SUFFIX "${CMAKE_SHARED_MODULE_SUFFIX}"
// test elseif
#cmakedefine ELSEIF_RESULT
// test parenthesis in conditionals
#cmakedefine CONDITIONAL_PARENTHESES

View File

@ -1 +0,0 @@
#define STRING_WITH_QUOTES "${STRING_WITH_QUOTES}"

View File

@ -1 +0,0 @@
#define GENERATED_HEADER_INCLUDED