summaryrefslogtreecommitdiffstats
path: root/Source/cmake.h
diff options
context:
space:
mode:
authorDavid Cole <david.cole@kitware.com>2011-08-25 19:40:49 (GMT)
committerCMake Topic Stage <kwrobot@kitware.com>2011-08-25 19:40:49 (GMT)
commit28cba226b352e04c96441f8ca051edf98c68994e (patch)
treec05a39ab6389f588dcb0b5ef0b9d864753ca6555 /Source/cmake.h
parentf5115f91d974e866b21a7c65386fcda34221e6bf (diff)
parent59238dc2deb80f3f3d101de9a3945f890981a2c0 (diff)
downloadCMake-28cba226b352e04c96441f8ca051edf98c68994e.zip
CMake-28cba226b352e04c96441f8ca051edf98c68994e.tar.gz
CMake-28cba226b352e04c96441f8ca051edf98c68994e.tar.bz2
Merge topic 'UsingCMakeLikePkgConfig2'
59238dc Fix --find-package mode on Cygwin, where enable_language(RC) is called 98472e4 Require the current cmake version in --find-package mode a6ccf3c Use $(CXXFLAGS) and $(LDFLAGS) in the --find-package test Makefile 4386918 Fix line length 7d69310 Only enable the test when using GNU make 3011149 Make the test harder by always having a space in the include dirs ab57ff6 Make the --find-package test harder 626fc71 Much improved test, should now be executed on all UNIXes ec6982d Disable any STATUS output in --find-package mode e552ae7 Dont check for -isysroot and -mmacosx-version on OSX in --find-package mode e589589 Rename helper macros print_compile_flags() to set_compile_flags_var() aecfc1f Fix test on OpenBSD with BSD make 6bb4ca3 The makefile for the test was kindof wrong fd15b5e Only run the test if we are using a makefile generator under UNIX 9fc87c6 Add a test for the new --find-package mode d3ae0ff Improve documentation for --find-package mode bf07375 Add a cmake.m4 for using cmake in autoconf projects instead of pkgconfig b0e3578 Use the file-utility to test for 64bit if there is no /usr/lib64 53edfb2 Better support for lib64 and Debian multiarch b8fdaa1 Fix copyright notice in new CMakeFindPackageMode.cmake 7690edf Replace cmake::GetScriptMode() with GetWorkingMode() e4f603b Implement find-package mode of cmake a91d662 Add find-package mode, which does nothing yet b976e70 Make clLocalGenerator::GetTargetFlags() public
Diffstat (limited to 'Source/cmake.h')
-rw-r--r--Source/cmake.h31
1 files changed, 23 insertions, 8 deletions
diff --git a/Source/cmake.h b/Source/cmake.h
index 09f6c37..ae56e85 100644
--- a/Source/cmake.h
+++ b/Source/cmake.h
@@ -64,6 +64,25 @@ class cmake
WARNING,
LOG
};
+
+
+ /** Describes the working modes of cmake.
+ * NORMAL_MODE: cmake runs to create project files
+ * SCRIPT_MODE: in script mode there is no generator and no cache. Also,
+ * language are not enabled, so add_executable and things do
+ * not do anything. Started by using -P
+ * FIND_PACKAGE_MODE: cmake runs in pkg-config like mode, i.e. it just
+ * searches for a package and prints the results to stdout.
+ * This is similar to SCRIPT_MODE, but commands like
+ * add_library() work too, since they may be used e.g. in
+ * exported target files. Started via --find-package
+ */
+ enum WorkingMode
+ {
+ NORMAL_MODE,
+ SCRIPT_MODE,
+ FIND_PACKAGE_MODE
+ };
typedef std::map<cmStdString, cmCommand*> RegisteredCommandsMap;
///! construct an instance of cmake
@@ -274,13 +293,8 @@ class cmake
///! Do all the checks before running configure
int DoPreConfigureChecks();
- /**
- * Set and get the script mode option. In script mode there is no
- * generator and no cache. Also, language are not enabled, so
- * add_executable and things do not do anything.
- */
- void SetScriptMode(bool mode) { this->ScriptMode = mode; }
- bool GetScriptMode() { return this->ScriptMode; }
+ void SetWorkingMode(WorkingMode mode) { this->CurrentWorkingMode = mode; }
+ WorkingMode GetWorkingMode() { return this->CurrentWorkingMode; }
///! Debug the try compile stuff by not delelting the files
bool GetDebugTryCompile(){return this->DebugTryCompile;}
@@ -409,6 +423,7 @@ protected:
///! read in a cmake list file to initialize the cache
void ReadListFile(const std::vector<std::string>& args, const char *path);
+ bool FindPackage(const std::vector<std::string>& args);
///! Check if CMAKE_CACHEFILE_DIR is set. If it is not, delete the log file.
/// If it is set, truncate it to 50kb
@@ -462,7 +477,7 @@ private:
void* ProgressCallbackClientData;
bool Verbose;
bool InTryCompile;
- bool ScriptMode;
+ WorkingMode CurrentWorkingMode;
bool DebugOutput;
bool Trace;
bool WarnUninitialized;