Revert "Add a way to exclude INTERFACE properties from exported targets."
This reverts commit2c3654c3de
. The removal of some tests added in commit77cecb77
(Add includes and compile definitions with target_link_libraries., 2012-11-05) are also squashed into this commit.
This commit is contained in:
parent
71bf96ec78
commit
79ae968a18
|
@ -264,16 +264,15 @@ void cmExportFileGenerator::GenerateInterfaceProperties(cmTarget *target,
|
||||||
{
|
{
|
||||||
if (!properties.empty())
|
if (!properties.empty())
|
||||||
{
|
{
|
||||||
os << "if(NOT ${CMAKE_FIND_PACKAGE_NAME}_NO_INTERFACES)\n";
|
|
||||||
std::string targetName = this->Namespace;
|
std::string targetName = this->Namespace;
|
||||||
targetName += target->GetName();
|
targetName += target->GetName();
|
||||||
os << " set_target_properties(" << targetName << " PROPERTIES\n";
|
os << "set_target_properties(" << targetName << " PROPERTIES\n";
|
||||||
for(ImportPropertyMap::const_iterator pi = properties.begin();
|
for(ImportPropertyMap::const_iterator pi = properties.begin();
|
||||||
pi != properties.end(); ++pi)
|
pi != properties.end(); ++pi)
|
||||||
{
|
{
|
||||||
os << " " << pi->first << " \"" << pi->second << "\"\n";
|
os << " " << pi->first << " \"" << pi->second << "\"\n";
|
||||||
}
|
}
|
||||||
os << " )\nendif()\n\n";
|
os << ")\n\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -376,27 +376,6 @@ void cmFindPackageCommand::GenerateDocumentation()
|
||||||
"The package configuration file may set <package>_FOUND to false "
|
"The package configuration file may set <package>_FOUND to false "
|
||||||
"to tell find_package that component requirements are not satisfied."
|
"to tell find_package that component requirements are not satisfied."
|
||||||
"\n"
|
"\n"
|
||||||
"Targets exported by the install() command may have additional INTERFACE "
|
|
||||||
"properties set for include directories, compile definitions etc. As "
|
|
||||||
"these may create a backward compatibility concern for consumers of "
|
|
||||||
"existing projects, it is possible to set the <package>_NO_INTERFACES "
|
|
||||||
"variable to disable populating those interfaces. It is possible to "
|
|
||||||
"emulate a version-based policy for whether the interfaces should be "
|
|
||||||
"enabled in the config file before including the imported targets file. "
|
|
||||||
"This allows consumers to decide when to enable the new interfaces when "
|
|
||||||
"upgrading. The upstream project is responsible for adding code similar "
|
|
||||||
"to this in the version which generates the INTERFACE content:\n"
|
|
||||||
" if(${CMAKE_FIND_PACKAGE_NAME}_FIND_VERSION VERSION_LESS 2.3\n"
|
|
||||||
" AND NOT ${CMAKE_FIND_PACKAGE_NAME}_INTERFACES)\n"
|
|
||||||
" set(${CMAKE_FIND_PACKAGE_NAME}_NO_INTERFACES 1)\n"
|
|
||||||
" endif()\n"
|
|
||||||
" include(\"${CMAKE_CURRENT_LIST_DIR}/<package>Targets.cmake\")\n"
|
|
||||||
"\n"
|
|
||||||
"Downstream users may then choose to use the new interfaces by finding "
|
|
||||||
"the newer version of upstream. They can also choose to not use the new "
|
|
||||||
"interfaces by setting <package>_INTERFACES to false before finding the "
|
|
||||||
"package.\n"
|
|
||||||
"\n"
|
|
||||||
"See the cmake_policy() command documentation for discussion of the "
|
"See the cmake_policy() command documentation for discussion of the "
|
||||||
"NO_POLICY_SCOPE option."
|
"NO_POLICY_SCOPE option."
|
||||||
;
|
;
|
||||||
|
|
|
@ -17,8 +17,3 @@ add_executable(imp_testTransExe1 imp_testTransExe1.c)
|
||||||
target_link_libraries(imp_testTransExe1 imp_lib1)
|
target_link_libraries(imp_testTransExe1 imp_lib1)
|
||||||
add_executable(imp_testTransExe1b imp_testTransExe1.c)
|
add_executable(imp_testTransExe1b imp_testTransExe1.c)
|
||||||
target_link_libraries(imp_testTransExe1b imp_lib1b)
|
target_link_libraries(imp_testTransExe1b imp_lib1b)
|
||||||
|
|
||||||
# Test package INTERFACE controls
|
|
||||||
add_subdirectory(package_old_old)
|
|
||||||
add_subdirectory(package_new_old)
|
|
||||||
add_subdirectory(package_new_new)
|
|
||||||
|
|
|
@ -1,23 +0,0 @@
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 2.8)
|
|
||||||
|
|
||||||
find_package(testLibRequired 2.5 REQUIRED)
|
|
||||||
|
|
||||||
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/main.cpp"
|
|
||||||
"
|
|
||||||
#include \"testSharedLibRequired.h\"
|
|
||||||
int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
TestSharedLibRequired req;
|
|
||||||
return req.foo();
|
|
||||||
}
|
|
||||||
"
|
|
||||||
)
|
|
||||||
|
|
||||||
get_target_property(prop Req::testSharedLibRequired INTERFACE_INCLUDE_DIRECTORIES)
|
|
||||||
if (NOT prop)
|
|
||||||
message(SEND_ERROR "Interface of Req::testSharedLibRequired should not be empty")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
add_executable(new_new_test "${CMAKE_CURRENT_BINARY_DIR}/main.cpp")
|
|
||||||
target_link_libraries(new_new_test Req::testSharedLibRequired)
|
|
|
@ -1,24 +0,0 @@
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 2.8)
|
|
||||||
|
|
||||||
find_package(testLibRequired 2.5 REQUIRED)
|
|
||||||
|
|
||||||
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/main.cpp"
|
|
||||||
"
|
|
||||||
#include \"testSharedLibRequired.h\"
|
|
||||||
int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
TestSharedLibRequired req;
|
|
||||||
return req.foo();
|
|
||||||
}
|
|
||||||
"
|
|
||||||
)
|
|
||||||
|
|
||||||
get_target_property(prop Req::testSharedLibRequired INTERFACE_INCLUDE_DIRECTORIES)
|
|
||||||
if ("${prop}" STREQUAL "")
|
|
||||||
message(SEND_ERROR "Interface of Req::testSharedLibRequired should not be empty")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
add_executable(new_old_test "${CMAKE_CURRENT_BINARY_DIR}/main.cpp")
|
|
||||||
target_link_libraries(new_old_test Req::testSharedLibRequired)
|
|
||||||
include_directories(${testLibRequired_INCLUDE_DIRS})
|
|
|
@ -1,24 +0,0 @@
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 2.8)
|
|
||||||
|
|
||||||
find_package(testLibRequired 2.1 REQUIRED)
|
|
||||||
|
|
||||||
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/main.cpp"
|
|
||||||
"
|
|
||||||
#include \"testSharedLibRequired.h\"
|
|
||||||
int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
TestSharedLibRequired req;
|
|
||||||
return req.foo();
|
|
||||||
}
|
|
||||||
"
|
|
||||||
)
|
|
||||||
|
|
||||||
get_target_property(prop Req::testSharedLibRequired INTERFACE_INCLUDE_DIRECTORIES)
|
|
||||||
if (prop)
|
|
||||||
message(SEND_ERROR "Interface of Req::testSharedLibRequired should be empty, but is ${prop}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
add_executable(old_old_test "${CMAKE_CURRENT_BINARY_DIR}/main.cpp")
|
|
||||||
target_link_libraries(old_old_test Req::testSharedLibRequired)
|
|
||||||
include_directories(${testLibRequired_INCLUDE_DIRS})
|
|
Loading…
Reference in New Issue