浏览代码

Generate INTERFACE_COMPILE_OPTIONS on export.

This was missing from commit 80ca9c4b (Add COMPILE_OPTIONS target
property., 2013-05-16).
Stephen Kelly 12 年之前
父节点
当前提交
77ff352aa7

+ 3 - 0
Source/cmExportBuildFileGenerator.cxx

@@ -72,6 +72,9 @@ bool cmExportBuildFileGenerator::GenerateMainFile(std::ostream& os)
     this->PopulateInterfaceProperty("INTERFACE_COMPILE_DEFINITIONS", te,
                                     cmGeneratorExpression::BuildInterface,
                                     properties, missingTargets);
+    this->PopulateInterfaceProperty("INTERFACE_COMPILE_OPTIONS", te,
+                                    cmGeneratorExpression::BuildInterface,
+                                    properties, missingTargets);
     this->PopulateInterfaceProperty("INTERFACE_POSITION_INDEPENDENT_CODE",
                                   te, properties);
     this->PopulateCompatibleInterfaceProperties(te, properties);

+ 4 - 0
Source/cmExportInstallFileGenerator.cxx

@@ -130,6 +130,10 @@ bool cmExportInstallFileGenerator::GenerateMainFile(std::ostream& os)
                                   te,
                                   cmGeneratorExpression::InstallInterface,
                                   properties, missingTargets);
+    this->PopulateInterfaceProperty("INTERFACE_COMPILE_OPTIONS",
+                                  te,
+                                  cmGeneratorExpression::InstallInterface,
+                                  properties, missingTargets);
     this->PopulateInterfaceProperty("INTERFACE_POSITION_INDEPENDENT_CODE",
                                   te, properties);
     this->PopulateCompatibleInterfaceProperties(te, properties);

+ 5 - 1
Tests/ExportImport/Export/CMakeLists.txt

@@ -162,7 +162,6 @@ set_property(TARGET testLibRequired APPEND PROPERTY
     $<BUILD_INTERFACE:BuildOnly_DEFINE>
     $<INSTALL_INTERFACE:InstallOnly_DEFINE>
 )
-
 include(GenerateExportHeader)
 
 add_subdirectory(renamed)
@@ -201,6 +200,11 @@ set_property(TARGET testSharedLibRequired
   PROPERTY
     INTERFACE_CUSTOM_STRING testcontent
 )
+set_property(TARGET testSharedLibRequired APPEND PROPERTY
+  INTERFACE_COMPILE_OPTIONS
+    $<$<CXX_COMPILER_ID:GNU>:-DCUSTOM_COMPILE_OPTION>
+)
+
 
 add_library(testSharedLibDepends SHARED testSharedLibDepends.cpp)
 set_property(TARGET testSharedLibDepends APPEND PROPERTY

+ 13 - 0
Tests/ExportImport/Import/A/CMakeLists.txt

@@ -169,6 +169,13 @@ target_compile_definitions(deps_shared_iface
     $<$<STREQUAL:$<TARGET_PROPERTY:CUSTOM_STRING>,testcontent>:CUSTOM_STRING_IS_MATCH>
 )
 
+if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
+  target_compile_definitions(deps_shared_iface
+    PRIVATE
+      "DO_GNU_TESTS"
+  )
+endif()
+
 if (APPLE OR CMAKE_CXX_COMPILER_ID MATCHES "GNU")
   include(CheckCXXCompilerFlag)
   check_cxx_compiler_flag(-fPIE run_pic_test)
@@ -199,6 +206,12 @@ endif()
 
 add_executable(deps_shared_iface2 deps_shared_iface.cpp)
 target_link_libraries(deps_shared_iface2 bld_testSharedLibDepends bld_subdirlib)
+if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
+  target_compile_definitions(deps_shared_iface2
+    PRIVATE
+      "DO_GNU_TESTS"
+  )
+endif()
 target_compile_definitions(deps_shared_iface2
   PRIVATE TEST_SUBDIR_LIB
   $<$<BOOL:$<TARGET_PROPERTY:POSITION_INDEPENDENT_CODE>>:PIC_PROPERTY_IS_ON>

+ 6 - 0
Tests/ExportImport/Import/A/deps_shared_iface.cpp

@@ -25,6 +25,12 @@
 #include "renamed.h"
 #endif
 
+#ifdef DO_GNU_TESTS
+#ifndef CUSTOM_COMPILE_OPTION
+#error Expected CUSTOM_COMPILE_OPTION
+#endif
+#endif
+
 int main(int,char **)
 {
   TestSharedLibDepends dep;