Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Brad King
CMake
Commits
c355d108
Commit
c355d108
authored
Mar 18, 2014
by
Stephen Kelly
Browse files
cmComputeTargetDepends: Track object library depends.
Relieve cmGeneratorTarget of that responsibility.
parent
e5da9e51
Changes
2
Hide whitespace changes
Inline
Side-by-side
Source/cmComputeTargetDepends.cxx
View file @
c355d108
...
...
@@ -16,6 +16,7 @@
#include "cmLocalGenerator.h"
#include "cmMakefile.h"
#include "cmSystemTools.h"
#include "cmSourceFile.h"
#include "cmTarget.h"
#include "cmake.h"
...
...
@@ -213,6 +214,34 @@ void cmComputeTargetDepends::CollectTargetDepends(int depender_index)
{
std
::
set
<
std
::
string
>
emitted
;
{
cmGeneratorTarget
*
gt
=
depender
->
GetMakefile
()
->
GetLocalGenerator
()
->
GetGlobalGenerator
()
->
GetGeneratorTarget
(
depender
);
std
::
vector
<
cmSourceFile
const
*>
objectFiles
;
gt
->
GetExternalObjects
(
objectFiles
);
for
(
std
::
vector
<
cmSourceFile
const
*>::
const_iterator
it
=
objectFiles
.
begin
();
it
!=
objectFiles
.
end
();
++
it
)
{
std
::
string
objLib
=
(
*
it
)
->
GetObjectLibrary
();
if
(
!
objLib
.
empty
()
&&
emitted
.
insert
(
objLib
).
second
)
{
if
(
depender
->
GetType
()
!=
cmTarget
::
EXECUTABLE
&&
depender
->
GetType
()
!=
cmTarget
::
STATIC_LIBRARY
&&
depender
->
GetType
()
!=
cmTarget
::
SHARED_LIBRARY
&&
depender
->
GetType
()
!=
cmTarget
::
MODULE_LIBRARY
)
{
this
->
GlobalGenerator
->
GetCMakeInstance
()
->
IssueMessage
(
cmake
::
FATAL_ERROR
,
"Only executables and non-OBJECT libraries may "
"reference target objects."
,
depender
->
GetBacktrace
());
return
;
}
const_cast
<
cmTarget
*>
(
depender
)
->
AddUtility
(
objLib
);
}
}
}
{
std
::
vector
<
std
::
string
>
tlibs
;
depender
->
GetDirectLinkLibraries
(
""
,
tlibs
,
depender
);
// A target should not depend on itself.
...
...
Source/cmGeneratorTarget.cxx
View file @
c355d108
...
...
@@ -528,7 +528,6 @@ void cmGeneratorTarget::LookupObjectLibraries()
this
->
Target
->
GetBacktrace
());
return
;
}
this
->
Target
->
AddUtility
(
objLib
->
GetName
());
this
->
ObjectLibraries
.
push_back
(
objLib
);
}
else
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment