cmTarget: Don't assert on object libraries for configure-time location.
Commit b8af2011
(cmTarget: Fix listing of source files at
configure-time., 2014-04-13) refactored a GetObjectLibrariesCMP0026
method out of GetLanguages. In flight, a conditional use of a target
if available was changed to an assert-available.
This code is only used to read the LOCATION property at configure
time, when the link information is incomplete, and not all targets
are defined, so the assert is inappropriate, even though it can lead
to incorrect information being generated. CMP0026 warns about the
potentially incorrect information anyway.
This commit is contained in:
parent
b8af201168
commit
d648c4766f
|
@ -5406,8 +5406,10 @@ cmTarget::GetObjectLibrariesCMP0026(std::vector<cmTarget*>& objlibs) const
|
|||
continue;
|
||||
}
|
||||
cmTarget *objLib = this->Makefile->FindTargetToUse(objLibName.c_str());
|
||||
assert(objLib);
|
||||
objlibs.push_back(objLib);
|
||||
if(objLib)
|
||||
{
|
||||
objlibs.push_back(objLib);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
0
|
|
@ -0,0 +1,12 @@
|
|||
CMake Warning \(dev\) at ObjlibNotDefined.cmake:[0-9]+ \(get_target_property\):
|
||||
Policy CMP0026 is not set: Disallow use of the LOCATION target property.
|
||||
Run "cmake --help-policy CMP0026" for policy details. Use the cmake_policy
|
||||
command to set the policy and suppress this warning.
|
||||
|
||||
The LOCATION property should not be read from target "objlibuser". Use the
|
||||
target name directly with add_custom_command, or use the generator
|
||||
expression \$<TARGET_FILE>, as appropriate.
|
||||
|
||||
Call Stack \(most recent call first\):
|
||||
CMakeLists.txt:3 \(include\)
|
||||
This warning is for project developers. Use -Wno-dev to suppress it.
|
|
@ -0,0 +1,13 @@
|
|||
|
||||
enable_language(CXX)
|
||||
|
||||
add_executable(objlibuser
|
||||
empty.cpp
|
||||
$<TARGET_OBJECTS:bar>
|
||||
)
|
||||
|
||||
get_target_property(_location objlibuser LOCATION)
|
||||
|
||||
add_library(bar OBJECT
|
||||
empty.cpp
|
||||
)
|
|
@ -9,3 +9,4 @@ run_cmake(CMP0026-CONFIG-LOCATION-WARN)
|
|||
run_cmake(CMP0026-LOCATION-CONFIG-NEW)
|
||||
run_cmake(CMP0026-LOCATION-CONFIG-OLD)
|
||||
run_cmake(CMP0026-LOCATION-CONFIG-WARN)
|
||||
run_cmake(ObjlibNotDefined)
|
||||
|
|
Loading…
Reference in New Issue