summaryrefslogtreecommitdiffstats
path: root/Source/cmMakefile.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/cmMakefile.h')
-rw-r--r--Source/cmMakefile.h26
1 files changed, 20 insertions, 6 deletions
diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h
index 9d9e90a..52a6498 100644
--- a/Source/cmMakefile.h
+++ b/Source/cmMakefile.h
@@ -3,12 +3,13 @@
#ifndef cmMakefile_h
#define cmMakefile_h
-#include <cmConfigure.h>
+#include "cmConfigure.h"
-#include <cmsys/RegularExpression.hxx>
+#include "cmsys/RegularExpression.hxx"
#include <map>
#include <set>
#include <stack>
+#include <stddef.h>
#include <string>
#include <vector>
@@ -53,6 +54,8 @@ class cmVariableWatch;
*/
class cmMakefile
{
+ CM_DISABLE_COPY(cmMakefile)
+
public:
/* Mark a variable as used */
void MarkVariableAsUsed(const std::string& var);
@@ -119,6 +122,13 @@ public:
*/
void FinalPass();
+ /** How to handle custom commands for object libraries */
+ enum ObjectLibraryCommands
+ {
+ RejectObjectLibraryCommands,
+ AcceptObjectLibraryCommands
+ };
+
/** Add a custom command to the build. */
void AddCustomCommandToTarget(
const std::string& target, const std::vector<std::string>& byproducts,
@@ -126,7 +136,8 @@ public:
const cmCustomCommandLines& commandLines, cmTarget::CustomCommandType type,
const char* comment, const char* workingDir, bool escapeOldStyle = true,
bool uses_terminal = false, const std::string& depfile = "",
- bool command_expand_lists = false);
+ bool command_expand_lists = false,
+ ObjectLibraryCommands objLibraryCommands = RejectObjectLibraryCommands);
cmSourceFile* AddCustomCommandToOutput(
const std::vector<std::string>& outputs,
const std::vector<std::string>& byproducts,
@@ -398,6 +409,8 @@ public:
cmSourceFile* GetOrCreateSource(const std::string& sourceName,
bool generated = false);
+ void AddTargetObject(std::string const& tgtName, std::string const& objFile);
+
/**
* Given a variable name, return its value (as a string).
* If the variable is not found in this makefile instance, the
@@ -428,6 +441,8 @@ public:
/** Return whether the target platform is 64-bit. */
bool PlatformIs64Bit() const;
+ /** Return whether the target platform is x32. */
+ bool PlatformIsx32() const;
/** Return whether the target platform is Apple iOS. */
bool PlatformIsAppleIos() const;
@@ -696,6 +711,7 @@ public:
/** Helper class to push and pop scopes automatically. */
class ScopePushPop
{
+ CM_DISABLE_COPY(ScopePushPop)
public:
ScopePushPop(cmMakefile* m)
: Makefile(m)
@@ -807,6 +823,7 @@ protected:
#if defined(CMAKE_BUILD_WITH_CMAKE)
std::vector<cmSourceGroup> SourceGroups;
+ size_t ObjectLibrariesSourceGroupIndex;
#endif
std::vector<cmCommand*> FinalPassCommands;
@@ -815,9 +832,6 @@ protected:
cmExecutionStatus& status);
private:
- cmMakefile(const cmMakefile& mf);
- cmMakefile& operator=(const cmMakefile& mf);
-
cmStateSnapshot StateSnapshot;
cmListFileBacktrace Backtrace;