summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2013-07-29 13:59:29 (GMT)
committerCMake Topic Stage <kwrobot@kitware.com>2013-07-29 13:59:29 (GMT)
commitc18117a1291743e94b878a13c8bb845fbb8d71df (patch)
treebb31ebdcd13343105e9dc7ebb70f5c5e381d874e
parent7c3494e9ae0466aed15a9e18ea2db96bd58be60f (diff)
parentf868e47236f8872a1edc84ae084f49609def06ad (diff)
downloadCMake-c18117a1291743e94b878a13c8bb845fbb8d71df.zip
CMake-c18117a1291743e94b878a13c8bb845fbb8d71df.tar.gz
CMake-c18117a1291743e94b878a13c8bb845fbb8d71df.tar.bz2
Merge topic 'fix-export-includes-crash'
f868e47 Fix crash on export of target with empty INTERFACE_INCLUDE_DIRECTORIES.
-rw-r--r--Source/cmExportFileGenerator.cxx2
-rw-r--r--Tests/ExportImport/Export/CMakeLists.txt3
-rw-r--r--Tests/ExportImport/Export/empty.cpp4
3 files changed, 8 insertions, 1 deletions
diff --git a/Source/cmExportFileGenerator.cxx b/Source/cmExportFileGenerator.cxx
index d4437a8..5b351bc 100644
--- a/Source/cmExportFileGenerator.cxx
+++ b/Source/cmExportFileGenerator.cxx
@@ -291,7 +291,7 @@ void cmExportFileGenerator::PopulateIncludeDirectoriesInterface(
{
return;
}
- if (!*input && tei->InterfaceIncludeDirectories.empty())
+ if ((input && !*input) && tei->InterfaceIncludeDirectories.empty())
{
// Set to empty
properties[propName] = "";
diff --git a/Tests/ExportImport/Export/CMakeLists.txt b/Tests/ExportImport/Export/CMakeLists.txt
index 49f1c58..1910f8c 100644
--- a/Tests/ExportImport/Export/CMakeLists.txt
+++ b/Tests/ExportImport/Export/CMakeLists.txt
@@ -270,6 +270,8 @@ set_property(TARGET cmp0022NEW APPEND PROPERTY INTERFACE_LINK_LIBRARIES testLib2
set_property(TARGET cmp0022OLD APPEND PROPERTY INTERFACE_LINK_LIBRARIES testLib2)
set_property(TARGET cmp0022OLD APPEND PROPERTY LINK_INTERFACE_LIBRARIES testLib3)
+add_library(noIncludesInterface empty.cpp)
+
install(TARGETS testLibRequired
testLibIncludeRequired1
testLibIncludeRequired2
@@ -278,6 +280,7 @@ install(TARGETS testLibRequired
testLibIncludeRequired5
testLibIncludeRequired6
testSharedLibRequired
+ noIncludesInterface
EXPORT RequiredExp DESTINATION lib
INCLUDES DESTINATION
installIncludesTest
diff --git a/Tests/ExportImport/Export/empty.cpp b/Tests/ExportImport/Export/empty.cpp
new file mode 100644
index 0000000..1787013
--- /dev/null
+++ b/Tests/ExportImport/Export/empty.cpp
@@ -0,0 +1,4 @@
+#ifdef _WIN32
+__declspec(dllexport)
+#endif
+int empty() { return 0; }