浏览代码

updated signature

Ken Martin 23 年之前
父节点
当前提交
5608a9a129
共有 2 个文件被更改,包括 20 次插入13 次删除
  1. 16 7
      Source/cmTryCompileCommand.cxx
  2. 4 6
      Source/cmTryCompileCommand.h

+ 16 - 7
Source/cmTryCompileCommand.cxx

@@ -20,17 +20,26 @@
 // cmExecutableCommand
 bool cmTryCompileCommand::InitialPass(std::vector<std::string> const& argv)
 {
-  if(argv.size() < 3)
+  if(argv.size() < 4)
     {
-    return true;
+    return false;
     }
   
-  const char* sourceDirectory = argv[0].c_str();
-  const char* binaryDirectory = argv[1].c_str();
-  const char* projectName = argv[2].c_str();
-
-  m_Makefile->TryCompile(sourceDirectory,binaryDirectory,projectName);
+  const char* sourceDirectory = argv[1].c_str();
+  const char* binaryDirectory = argv[2].c_str();
+  const char* projectName = argv[3].c_str();
+  const char* targetName = 0;
+  
+  if (argv.size() == 5)
+    {
+    targetName = argv[4].c_str();
+    }
+  
+  int res = m_Makefile->TryCompile(sourceDirectory, binaryDirectory,
+                                   projectName, targetName);
   
+  // set the result var to the return value to indicate success or failure
+  m_Makefile->AddDefinition(argv[0].c_str(), (res == 0 ? "TRUE" : "FALSE"));
   return true;
 }
 

+ 4 - 6
Source/cmTryCompileCommand.h

@@ -62,16 +62,14 @@ public:
   virtual const char* GetFullDocumentation()
     {
     return
-      "TRY_COMPILE(RESULT_VAR CMakeListFile )\n"
-      "TRY_COMPILE(RESULT_VAR sourceCode)\n"
-      "Try compiling a program. Return the success or failure in result";
+      "TRY_COMPILE(RESULT_VAR srcdir bindir projectName <targetName>)\n"
+      "Try compiling a program. Return the success or failure in RESULT_VAR "
+      "If <target name> is specified then build just that target "
+      "otherwise the all or ALL_BUILD target is built.";
     }
   
   cmTypeMacro(cmTryCompileCommand, cmCommand);
 
- private:
-  std::string m_TargetName;
-  std::vector<std::string> m_FinalArgs;
 };