瀏覽代碼

Xcode: Add target property to override productType

Gregor Jasny 9 年之前
父節點
當前提交
7ecac703ce
共有 3 個文件被更改,包括 11 次插入0 次删除
  1. 1 0
      Help/manual/cmake-properties.7.rst
  2. 6 0
      Help/prop_tgt/XCODE_PRODUCT_TYPE.rst
  3. 4 0
      Source/cmGlobalXCodeGenerator.cxx

+ 1 - 0
Help/manual/cmake-properties.7.rst

@@ -294,6 +294,7 @@ Properties on Targets
    /prop_tgt/WIN32_EXECUTABLE
    /prop_tgt/WINDOWS_EXPORT_ALL_SYMBOLS
    /prop_tgt/XCODE_ATTRIBUTE_an-attribute
+   /prop_tgt/XCODE_PRODUCT_TYPE
    /prop_tgt/XCTEST
 
 .. _`Test Properties`:

+ 6 - 0
Help/prop_tgt/XCODE_PRODUCT_TYPE.rst

@@ -0,0 +1,6 @@
+XCODE_PRODUCT_TYPE
+------------------
+
+Set the Xcode ``productType`` attribute on its reference to a
+target.  CMake computes a default based on target type but
+can be told explicitly with this property.

+ 4 - 0
Source/cmGlobalXCodeGenerator.cxx

@@ -2340,6 +2340,10 @@ const char* cmGlobalXCodeGenerator::GetTargetFileType(
 const char* cmGlobalXCodeGenerator::GetTargetProductType(
   cmGeneratorTarget* target)
 {
+  if (const char* e = target->GetProperty("XCODE_PRODUCT_TYPE")) {
+    return e;
+  }
+
   switch (target->GetType()) {
     case cmStateEnums::OBJECT_LIBRARY:
     case cmStateEnums::STATIC_LIBRARY: