diff options
author | Craig Scott <craig.scott@crascit.com> | 2018-08-18 00:54:47 (GMT) |
---|---|---|
committer | Craig Scott <craig.scott@crascit.com> | 2018-08-18 00:54:47 (GMT) |
commit | 7e919ace319514282209663767525fb3855e5fa4 (patch) | |
tree | 5464e19a76d6eab306a1140bb6abdb7e0c8e5e8a | |
parent | c4ab098097f4fe1bc85ee29c6de390dff435f63f (diff) | |
parent | dbd3e2c53d2fb0c19a08a0fe8780df5eb4f89476 (diff) | |
download | CMake-7e919ace319514282209663767525fb3855e5fa4.zip CMake-7e919ace319514282209663767525fb3855e5fa4.tar.gz CMake-7e919ace319514282209663767525fb3855e5fa4.tar.bz2 |
Merge branch 'export-properties-undefined' into release-3.12
Merge-request: !2294
-rw-r--r-- | Source/cmExportFileGenerator.cxx | 5 | ||||
-rw-r--r-- | Tests/RunCMake/export/ExportPropertiesUndefined.cmake | 11 | ||||
-rw-r--r-- | Tests/RunCMake/export/RunCMakeTest.cmake | 1 |
3 files changed, 17 insertions, 0 deletions
diff --git a/Source/cmExportFileGenerator.cxx b/Source/cmExportFileGenerator.cxx index 5f61571..9e6560f 100644 --- a/Source/cmExportFileGenerator.cxx +++ b/Source/cmExportFileGenerator.cxx @@ -1143,6 +1143,11 @@ bool cmExportFileGenerator::PopulateExportProperties( return false; } auto propertyValue = targetProperties.GetPropertyValue(prop); + if (propertyValue == nullptr) { + // Asked to export a property that isn't defined on the target. Do not + // consider this an error, there's just nothing to export. + continue; + } std::string evaluatedValue = cmGeneratorExpression::Preprocess( propertyValue, cmGeneratorExpression::StripAllGeneratorExpressions); if (evaluatedValue != propertyValue) { diff --git a/Tests/RunCMake/export/ExportPropertiesUndefined.cmake b/Tests/RunCMake/export/ExportPropertiesUndefined.cmake new file mode 100644 index 0000000..aa529f2 --- /dev/null +++ b/Tests/RunCMake/export/ExportPropertiesUndefined.cmake @@ -0,0 +1,11 @@ +enable_language(CXX) +add_library(foo empty.cpp) +set_target_properties(foo PROPERTIES + EXPORT_PROPERTIES "NotDefinedProp" +) +export(TARGETS foo FILE "${CMAKE_CURRENT_BINARY_DIR}/foo.cmake") +install(TARGETS foo EXPORT fooExport + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) diff --git a/Tests/RunCMake/export/RunCMakeTest.cmake b/Tests/RunCMake/export/RunCMakeTest.cmake index 10ced90..46bb1fc 100644 --- a/Tests/RunCMake/export/RunCMakeTest.cmake +++ b/Tests/RunCMake/export/RunCMakeTest.cmake @@ -8,3 +8,4 @@ run_cmake(NoExportSet) run_cmake(ForbiddenToExportInterfaceProperties) run_cmake(ForbiddenToExportImportedProperties) run_cmake(ForbiddenToExportPropertyWithGenExp) +run_cmake(ExportPropertiesUndefined) |