Fix crash on export of target with empty INTERFACE_INCLUDE_DIRECTORIES.
The new feature of install(TARGETS ... INCLUDES DESTINATION) introduced
in commit 650e61f8
(Add a convenient way to add the includes install
dir to the INTERFACE., 2013-01-05) introduced this crash. If the
new feature is used with a target which has no
INTERFACE_INCLUDE_DIRECTORIES, a segfault occurred.
This commit is contained in:
parent
46558d290b
commit
f868e47236
|
@ -291,7 +291,7 @@ void cmExportFileGenerator::PopulateIncludeDirectoriesInterface(
|
|||
{
|
||||
return;
|
||||
}
|
||||
if (!*input && tei->InterfaceIncludeDirectories.empty())
|
||||
if ((input && !*input) && tei->InterfaceIncludeDirectories.empty())
|
||||
{
|
||||
// Set to empty
|
||||
properties[propName] = "";
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
#ifdef _WIN32
|
||||
__declspec(dllexport)
|
||||
#endif
|
||||
int empty() { return 0; }
|
Loading…
Reference in New Issue