Add 'ANDROID_GUI' target property to mark Android applications
Also add a 'CMAKE_ANDROID_GUI' variable to set the property default so a project can easily make all executables Android applications. An Android application executable file has the same extension as a shared library (.so).
This commit is contained in:
parent
16569abfa8
commit
9a4df52aa1
|
@ -79,6 +79,7 @@ Properties on Targets
|
||||||
:maxdepth: 1
|
:maxdepth: 1
|
||||||
|
|
||||||
/prop_tgt/ALIASED_TARGET
|
/prop_tgt/ALIASED_TARGET
|
||||||
|
/prop_tgt/ANDROID_GUI
|
||||||
/prop_tgt/ARCHIVE_OUTPUT_DIRECTORY_CONFIG
|
/prop_tgt/ARCHIVE_OUTPUT_DIRECTORY_CONFIG
|
||||||
/prop_tgt/ARCHIVE_OUTPUT_DIRECTORY
|
/prop_tgt/ARCHIVE_OUTPUT_DIRECTORY
|
||||||
/prop_tgt/ARCHIVE_OUTPUT_NAME_CONFIG
|
/prop_tgt/ARCHIVE_OUTPUT_NAME_CONFIG
|
||||||
|
|
|
@ -204,6 +204,7 @@ Variables that Control the Build
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 1
|
:maxdepth: 1
|
||||||
|
|
||||||
|
/variable/CMAKE_ANDROID_GUI
|
||||||
/variable/CMAKE_ARCHIVE_OUTPUT_DIRECTORY
|
/variable/CMAKE_ARCHIVE_OUTPUT_DIRECTORY
|
||||||
/variable/CMAKE_AUTOMOC_MOC_OPTIONS
|
/variable/CMAKE_AUTOMOC_MOC_OPTIONS
|
||||||
/variable/CMAKE_AUTOMOC
|
/variable/CMAKE_AUTOMOC
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
ANDROID_GUI
|
||||||
|
-----------
|
||||||
|
|
||||||
|
Build an executable as an application package on Android.
|
||||||
|
|
||||||
|
When this property is set to true the executable when built for Android
|
||||||
|
will be created as an application package. This property is initialized
|
||||||
|
by the value of the :variable:`CMAKE_ANDROID_GUI` variable if it is set
|
||||||
|
when a target is created.
|
|
@ -0,0 +1,5 @@
|
||||||
|
CMAKE_ANDROID_GUI
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
Default value for the :prop_tgt:`ANDROID_GUI` target property of
|
||||||
|
executables. See that target property for additional information.
|
|
@ -446,6 +446,10 @@ void cmTarget::SetMakefile(cmMakefile* mf)
|
||||||
this->SetPropertyDefault("VISIBILITY_INLINES_HIDDEN", 0);
|
this->SetPropertyDefault("VISIBILITY_INLINES_HIDDEN", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(this->TargetTypeValue == cmTarget::EXECUTABLE)
|
||||||
|
{
|
||||||
|
this->SetPropertyDefault("ANDROID_GUI", 0);
|
||||||
|
}
|
||||||
if(this->TargetTypeValue == cmTarget::SHARED_LIBRARY
|
if(this->TargetTypeValue == cmTarget::SHARED_LIBRARY
|
||||||
|| this->TargetTypeValue == cmTarget::MODULE_LIBRARY)
|
|| this->TargetTypeValue == cmTarget::MODULE_LIBRARY)
|
||||||
{
|
{
|
||||||
|
@ -3504,7 +3508,10 @@ const char* cmTarget::GetSuffixVariableInternal(bool implib) const
|
||||||
case cmTarget::EXECUTABLE:
|
case cmTarget::EXECUTABLE:
|
||||||
return (implib
|
return (implib
|
||||||
? "CMAKE_IMPORT_LIBRARY_SUFFIX"
|
? "CMAKE_IMPORT_LIBRARY_SUFFIX"
|
||||||
: "CMAKE_EXECUTABLE_SUFFIX");
|
// Android GUI application packages store the native
|
||||||
|
// binary as a shared library.
|
||||||
|
: (this->IsAndroid && this->GetPropertyAsBool("ANDROID_GUI")?
|
||||||
|
"CMAKE_SHARED_LIBRARY_SUFFIX" : "CMAKE_EXECUTABLE_SUFFIX"));
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -3528,7 +3535,12 @@ const char* cmTarget::GetPrefixVariableInternal(bool implib) const
|
||||||
? "CMAKE_IMPORT_LIBRARY_PREFIX"
|
? "CMAKE_IMPORT_LIBRARY_PREFIX"
|
||||||
: "CMAKE_SHARED_MODULE_PREFIX");
|
: "CMAKE_SHARED_MODULE_PREFIX");
|
||||||
case cmTarget::EXECUTABLE:
|
case cmTarget::EXECUTABLE:
|
||||||
return (implib? "CMAKE_IMPORT_LIBRARY_PREFIX" : "");
|
return (implib
|
||||||
|
? "CMAKE_IMPORT_LIBRARY_PREFIX"
|
||||||
|
// Android GUI application packages store the native
|
||||||
|
// binary as a shared library.
|
||||||
|
: (this->IsAndroid && this->GetPropertyAsBool("ANDROID_GUI")?
|
||||||
|
"CMAKE_SHARED_LIBRARY_PREFIX" : ""));
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue