|
@@ -272,8 +272,7 @@ cmTarget::cmTarget(std::string const& name, cmStateEnums::TargetType type,
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
// Setup default property values.
|
|
// Setup default property values.
|
|
|
- if (this->GetType() != cmStateEnums::INTERFACE_LIBRARY &&
|
|
|
|
|
- this->GetType() != cmStateEnums::UTILITY) {
|
|
|
|
|
|
|
+ if (this->CanCompileSources()) {
|
|
|
initProp("ANDROID_API");
|
|
initProp("ANDROID_API");
|
|
|
initProp("ANDROID_API_MIN");
|
|
initProp("ANDROID_API_MIN");
|
|
|
initProp("ANDROID_ARCH");
|
|
initProp("ANDROID_ARCH");
|
|
@@ -505,6 +504,8 @@ cmTarget::cmTarget(std::string const& name, cmStateEnums::TargetType type,
|
|
|
if (impl->TargetType == cmStateEnums::SHARED_LIBRARY ||
|
|
if (impl->TargetType == cmStateEnums::SHARED_LIBRARY ||
|
|
|
impl->TargetType == cmStateEnums::MODULE_LIBRARY) {
|
|
impl->TargetType == cmStateEnums::MODULE_LIBRARY) {
|
|
|
this->SetProperty("POSITION_INDEPENDENT_CODE", "True");
|
|
this->SetProperty("POSITION_INDEPENDENT_CODE", "True");
|
|
|
|
|
+ } else if (this->CanCompileSources()) {
|
|
|
|
|
+ initProp("POSITION_INDEPENDENT_CODE");
|
|
|
}
|
|
}
|
|
|
if (impl->TargetType == cmStateEnums::SHARED_LIBRARY ||
|
|
if (impl->TargetType == cmStateEnums::SHARED_LIBRARY ||
|
|
|
impl->TargetType == cmStateEnums::EXECUTABLE) {
|
|
impl->TargetType == cmStateEnums::EXECUTABLE) {
|
|
@@ -512,11 +513,6 @@ cmTarget::cmTarget(std::string const& name, cmStateEnums::TargetType type,
|
|
|
initProp("WINDOWS_EXPORT_ALL_SYMBOLS");
|
|
initProp("WINDOWS_EXPORT_ALL_SYMBOLS");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- if (this->GetType() != cmStateEnums::INTERFACE_LIBRARY &&
|
|
|
|
|
- this->GetType() != cmStateEnums::UTILITY) {
|
|
|
|
|
- initProp("POSITION_INDEPENDENT_CODE");
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
// Record current policies for later use.
|
|
// Record current policies for later use.
|
|
|
impl->Makefile->RecordPolicies(impl->PolicyMap);
|
|
impl->Makefile->RecordPolicies(impl->PolicyMap);
|
|
|
|
|
|
|
@@ -1910,6 +1906,27 @@ bool cmTarget::IsPerConfig() const
|
|
|
return impl->PerConfig;
|
|
return impl->PerConfig;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+bool cmTarget::CanCompileSources() const
|
|
|
|
|
+{
|
|
|
|
|
+ if (this->IsImported()) {
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+ switch (this->GetType()) {
|
|
|
|
|
+ case cmStateEnums::EXECUTABLE:
|
|
|
|
|
+ case cmStateEnums::STATIC_LIBRARY:
|
|
|
|
|
+ case cmStateEnums::SHARED_LIBRARY:
|
|
|
|
|
+ case cmStateEnums::MODULE_LIBRARY:
|
|
|
|
|
+ case cmStateEnums::OBJECT_LIBRARY:
|
|
|
|
|
+ return true;
|
|
|
|
|
+ case cmStateEnums::UTILITY:
|
|
|
|
|
+ case cmStateEnums::INTERFACE_LIBRARY:
|
|
|
|
|
+ case cmStateEnums::GLOBAL_TARGET:
|
|
|
|
|
+ case cmStateEnums::UNKNOWN_LIBRARY:
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
+ return false;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
const char* cmTarget::GetSuffixVariableInternal(
|
|
const char* cmTarget::GetSuffixVariableInternal(
|
|
|
cmStateEnums::ArtifactType artifact) const
|
|
cmStateEnums::ArtifactType artifact) const
|
|
|
{
|
|
{
|