mirror of
https://github.com/pocoproject/poco.git
synced 2025-03-02 20:30:11 +01:00
rename some of the new Environment methods, make PocoDoc config changes backwards-compatible, revert PocoDoc config changes, make doc build scripts work on macos
This commit is contained in:
parent
f0a79015f7
commit
079c9a6263
@ -30,28 +30,28 @@ class Foundation_API Environment
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
typedef UInt8 NodeId[6]; /// Ethernet address.
|
typedef UInt8 NodeId[6]; /// Ethernet address.
|
||||||
|
|
||||||
static std::string get(const std::string& name);
|
static std::string get(const std::string& name);
|
||||||
/// Returns the value of the environment variable
|
/// Returns the value of the environment variable
|
||||||
/// with the given name. Throws a NotFoundException
|
/// with the given name. Throws a NotFoundException
|
||||||
/// if the variable does not exist.
|
/// if the variable does not exist.
|
||||||
|
|
||||||
static std::string get(const std::string& name, const std::string& defaultValue);
|
static std::string get(const std::string& name, const std::string& defaultValue);
|
||||||
/// Returns the value of the environment variable
|
/// Returns the value of the environment variable
|
||||||
/// with the given name. If the environment variable
|
/// with the given name. If the environment variable
|
||||||
/// is undefined, returns defaultValue instead.
|
/// is undefined, returns defaultValue instead.
|
||||||
|
|
||||||
static bool has(const std::string& name);
|
static bool has(const std::string& name);
|
||||||
/// Returns true iff an environment variable
|
/// Returns true iff an environment variable
|
||||||
/// with the given name is defined.
|
/// with the given name is defined.
|
||||||
|
|
||||||
static void set(const std::string& name, const std::string& value);
|
static void set(const std::string& name, const std::string& value);
|
||||||
/// Sets the environment variable with the given name
|
/// Sets the environment variable with the given name
|
||||||
/// to the given value.
|
/// to the given value.
|
||||||
|
|
||||||
static std::string osName();
|
static std::string osName();
|
||||||
/// Returns the operating system name.
|
/// Returns the operating system name.
|
||||||
|
|
||||||
static std::string osDisplayName();
|
static std::string osDisplayName();
|
||||||
/// Returns the operating system name in a
|
/// Returns the operating system name in a
|
||||||
/// "user-friendly" way.
|
/// "user-friendly" way.
|
||||||
@ -61,33 +61,33 @@ public:
|
|||||||
/// "Windows XP" or "Windows 7/Server 2008 SP2".
|
/// "Windows XP" or "Windows 7/Server 2008 SP2".
|
||||||
/// On other platforms, returns the same as
|
/// On other platforms, returns the same as
|
||||||
/// osName().
|
/// osName().
|
||||||
|
|
||||||
static std::string osVersion();
|
static std::string osVersion();
|
||||||
/// Returns the operating system version.
|
/// Returns the operating system version.
|
||||||
|
|
||||||
static std::string osArchitecture();
|
static std::string osArchitecture();
|
||||||
/// Returns the operating system architecture.
|
/// Returns the operating system architecture.
|
||||||
|
|
||||||
static std::string nodeName();
|
static std::string nodeName();
|
||||||
/// Returns the node (or host) name.
|
/// Returns the node (or host) name.
|
||||||
|
|
||||||
static void nodeId(NodeId& id);
|
static void nodeId(NodeId& id);
|
||||||
/// Returns the Ethernet address of the first Ethernet
|
/// Returns the Ethernet address of the first Ethernet
|
||||||
/// adapter found on the system.
|
/// adapter found on the system.
|
||||||
///
|
///
|
||||||
/// Throws a SystemException if no Ethernet adapter is available.
|
/// Throws a SystemException if no Ethernet adapter is available.
|
||||||
|
|
||||||
static std::string nodeId();
|
static std::string nodeId();
|
||||||
/// Returns the Ethernet address (format "xx:xx:xx:xx:xx:xx")
|
/// Returns the Ethernet address (format "xx:xx:xx:xx:xx:xx")
|
||||||
/// of the first Ethernet adapter found on the system.
|
/// of the first Ethernet adapter found on the system.
|
||||||
///
|
///
|
||||||
/// Throws a SystemException if no Ethernet adapter is available.
|
/// Throws a SystemException if no Ethernet adapter is available.
|
||||||
|
|
||||||
static unsigned processorCount();
|
static unsigned processorCount();
|
||||||
/// Returns the number of processors installed in the system.
|
/// Returns the number of processors installed in the system.
|
||||||
///
|
///
|
||||||
/// If the number of processors cannot be determined, returns 1.
|
/// If the number of processors cannot be determined, returns 1.
|
||||||
|
|
||||||
static Poco::UInt32 libraryVersion();
|
static Poco::UInt32 libraryVersion();
|
||||||
/// Returns the POCO C++ Libraries version as a hexadecimal
|
/// Returns the POCO C++ Libraries version as a hexadecimal
|
||||||
/// number in format 0xAABBCCDD, where
|
/// number in format 0xAABBCCDD, where
|
||||||
@ -105,19 +105,15 @@ public:
|
|||||||
/// Return the operating system as defined
|
/// Return the operating system as defined
|
||||||
/// in the include Foundation/Platform.h (POCO_OS)
|
/// in the include Foundation/Platform.h (POCO_OS)
|
||||||
|
|
||||||
static Poco::Int32 cpu();
|
static Poco::Int32 arch();
|
||||||
/// Return the underlying cpu that runs this operating system
|
/// Return the underlying cpu architecture that runs this operating system
|
||||||
/// as defined in Foundation/Platform (POCO_ARCH)
|
/// as defined in Foundation/Platform (POCO_ARCH)
|
||||||
|
|
||||||
static bool osFamilyUnix();
|
static bool isUnix();
|
||||||
/// Return true if the operating system belongs to the Linux family
|
/// Return true if the operating system belongs to the Linux family
|
||||||
|
|
||||||
static bool osFamilyWindows();
|
static bool isWindows();
|
||||||
/// Return true if the operating system belongs to the Windows family
|
/// Return true if the operating system belongs to the Windows family
|
||||||
|
|
||||||
static bool osFamilyVms();
|
|
||||||
/// Return true if the operating system belongs to the VMS family
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -50,13 +50,13 @@ std::string Environment::get(const std::string& name, const std::string& default
|
|||||||
return defaultValue;
|
return defaultValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool Environment::has(const std::string& name)
|
bool Environment::has(const std::string& name)
|
||||||
{
|
{
|
||||||
return EnvironmentImpl::hasImpl(name);
|
return EnvironmentImpl::hasImpl(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Environment::set(const std::string& name, const std::string& value)
|
void Environment::set(const std::string& name, const std::string& value)
|
||||||
{
|
{
|
||||||
EnvironmentImpl::setImpl(name, value);
|
EnvironmentImpl::setImpl(name, value);
|
||||||
@ -74,18 +74,18 @@ std::string Environment::osDisplayName()
|
|||||||
return EnvironmentImpl::osDisplayNameImpl();
|
return EnvironmentImpl::osDisplayNameImpl();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
std::string Environment::osVersion()
|
std::string Environment::osVersion()
|
||||||
{
|
{
|
||||||
return EnvironmentImpl::osVersionImpl();
|
return EnvironmentImpl::osVersionImpl();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
std::string Environment::osArchitecture()
|
std::string Environment::osArchitecture()
|
||||||
{
|
{
|
||||||
return EnvironmentImpl::osArchitectureImpl();
|
return EnvironmentImpl::osArchitectureImpl();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
std::string Environment::nodeName()
|
std::string Environment::nodeName()
|
||||||
{
|
{
|
||||||
@ -126,17 +126,20 @@ Poco::UInt32 Environment::libraryVersion()
|
|||||||
return POCO_VERSION;
|
return POCO_VERSION;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Poco::Int32 Environment::os()
|
Poco::Int32 Environment::os()
|
||||||
{
|
{
|
||||||
return POCO_OS;
|
return POCO_OS;
|
||||||
}
|
}
|
||||||
|
|
||||||
Poco::Int32 Environment::cpu()
|
|
||||||
|
Poco::Int32 Environment::arch()
|
||||||
{
|
{
|
||||||
return POCO_ARCH;
|
return POCO_ARCH;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Environment::osFamilyUnix()
|
|
||||||
|
bool Environment::isUnix()
|
||||||
{
|
{
|
||||||
#if defined(POCO_OS_FAMILY_UNIX)
|
#if defined(POCO_OS_FAMILY_UNIX)
|
||||||
return true;
|
return true;
|
||||||
@ -145,7 +148,8 @@ bool Environment::osFamilyUnix()
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Environment::osFamilyWindows()
|
|
||||||
|
bool Environment::isWindows()
|
||||||
{
|
{
|
||||||
#if defined(POCO_OS_FAMILY_WINDOWS)
|
#if defined(POCO_OS_FAMILY_WINDOWS)
|
||||||
return true;
|
return true;
|
||||||
@ -154,13 +158,5 @@ bool Environment::osFamilyWindows()
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Environment::osFamilyVms()
|
|
||||||
{
|
|
||||||
#if defined(POCO_OS_FAMILY_VMS)
|
|
||||||
return true;
|
|
||||||
#else
|
|
||||||
return false;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace Poco
|
} // namespace Poco
|
||||||
|
@ -13,13 +13,6 @@
|
|||||||
expat*.h,
|
expat*.h,
|
||||||
zconf.h,
|
zconf.h,
|
||||||
zlib.h,
|
zlib.h,
|
||||||
Alignment.h,
|
|
||||||
QName.h,
|
|
||||||
CppUnitException.h,
|
|
||||||
Constants.h,
|
|
||||||
inffast.h,
|
|
||||||
PDF/include/*.h,
|
|
||||||
CppParser/include/*.h
|
|
||||||
</exclude>
|
</exclude>
|
||||||
</files>
|
</files>
|
||||||
<pages>
|
<pages>
|
||||||
@ -35,41 +28,21 @@
|
|||||||
${PocoBuild}/*/doc/images
|
${PocoBuild}/*/doc/images
|
||||||
</resources>
|
</resources>
|
||||||
<compiler>
|
<compiler>
|
||||||
<windows>
|
<exec>clang++</exec>
|
||||||
<exec>cl.exe</exec>
|
<options>
|
||||||
<options>
|
${Includes},
|
||||||
${Includes},
|
-I/usr/local/mysql/include,
|
||||||
/I${PocoBase}/openssl/include
|
-I/usr/include/mysql,
|
||||||
/I${VC}/include,
|
-D_DEBUG,
|
||||||
/I${WDK}/shared
|
-E,
|
||||||
/I${WDK}/um
|
-C,
|
||||||
/I${WDK}/ucrt
|
-DPOCO_NO_GCC_API_ATTRIBUTE,
|
||||||
/nologo,
|
-xc++
|
||||||
/D_DEBUG,
|
-std=c++11,
|
||||||
/E,
|
-stdlib=libc++
|
||||||
/C,
|
</options>
|
||||||
/DPOCO_NO_GCC_API_ATTRIBUTE
|
<path></path>
|
||||||
/DPOCO_NO_WINDOWS_H
|
<usePipe>true</usePipe>
|
||||||
</options>
|
|
||||||
<path>${VC}/bin</path>
|
|
||||||
<usePipe>true</usePipe>
|
|
||||||
</windows>
|
|
||||||
<unix>
|
|
||||||
<exec>${CXX} ${CXXFLAGS}</exec>
|
|
||||||
<options>
|
|
||||||
${Includes},
|
|
||||||
-I/usr/local/mysql/include,
|
|
||||||
-I/usr/include/mysql,
|
|
||||||
-I/usr/include/postgresql,
|
|
||||||
-D_DEBUG,
|
|
||||||
-E,
|
|
||||||
-C,
|
|
||||||
-DPOCO_NO_GCC_API_ATTRIBUTE
|
|
||||||
-DPOCO_NO_WINDOWS_H
|
|
||||||
</options>
|
|
||||||
<path></path>
|
|
||||||
<usePipe>true</usePipe>
|
|
||||||
</unix>
|
|
||||||
</compiler>
|
</compiler>
|
||||||
<language>EN</language>
|
<language>EN</language>
|
||||||
<charset>utf-8</charset>
|
<charset>utf-8</charset>
|
||||||
|
@ -13,9 +13,7 @@
|
|||||||
expat*.h,
|
expat*.h,
|
||||||
zconf.h,
|
zconf.h,
|
||||||
zlib.h,
|
zlib.h,
|
||||||
XMLStreamParser.h,
|
${PocoBuild}/Util/include/Poco/Util/Units.h
|
||||||
CppUnitException.h,
|
|
||||||
RepeatedTest.h,
|
|
||||||
</exclude>
|
</exclude>
|
||||||
</files>
|
</files>
|
||||||
<pages>
|
<pages>
|
||||||
@ -31,23 +29,15 @@
|
|||||||
${PocoBuild}/*/doc/images
|
${PocoBuild}/*/doc/images
|
||||||
</resources>
|
</resources>
|
||||||
<compiler>
|
<compiler>
|
||||||
<exec>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\cl.exe</exec>
|
<exec>g++</exec>
|
||||||
<options>
|
<options>
|
||||||
${Includes},
|
${Includes},
|
||||||
-I/usr/local/mysql/include,
|
-I/usr/local/mysql/include,
|
||||||
-I/usr/include/mysql,
|
-I/usr/include/mysql,
|
||||||
-I/usr/include/postgresql,
|
|
||||||
/I${PocoBase}/openssl/include
|
|
||||||
/IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include,
|
|
||||||
/IC:\Program Files (x86)\Windows Kits\8.1\Include\shared,
|
|
||||||
/IC:\Program Files (x86)\Windows Kits\8.1\Include\um,
|
|
||||||
/IC:\Program Files (x86)\Windows Kits\10\Include\10.0.15063.0\ucrt,
|
|
||||||
/nologo,
|
|
||||||
-D_DEBUG,
|
-D_DEBUG,
|
||||||
-E,
|
-E,
|
||||||
-C,
|
-C,
|
||||||
-DPOCO_NO_GCC_API_ATTRIBUTE
|
-DPOCO_NO_GCC_API_ATTRIBUTE
|
||||||
-DPOCO_NO_WINDOWS_H
|
|
||||||
</options>
|
</options>
|
||||||
<path></path>
|
<path></path>
|
||||||
<usePipe>true</usePipe>
|
<usePipe>true</usePipe>
|
||||||
@ -104,7 +94,7 @@
|
|||||||
<loggers>
|
<loggers>
|
||||||
<root>
|
<root>
|
||||||
<channel>c1</channel>
|
<channel>c1</channel>
|
||||||
<level>information</level>
|
<level>warning</level>
|
||||||
</root>
|
</root>
|
||||||
</loggers>
|
</loggers>
|
||||||
<channels>
|
<channels>
|
||||||
|
@ -60,7 +60,6 @@ using Poco::Util::OptionCallback;
|
|||||||
using Poco::Util::HelpFormatter;
|
using Poco::Util::HelpFormatter;
|
||||||
using Poco::Util::AbstractConfiguration;
|
using Poco::Util::AbstractConfiguration;
|
||||||
|
|
||||||
static std::string osName = Environment::osName();
|
|
||||||
|
|
||||||
class Preprocessor
|
class Preprocessor
|
||||||
{
|
{
|
||||||
@ -77,12 +76,12 @@ public:
|
|||||||
_file(file)
|
_file(file)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
std::istream& stream()
|
std::istream& stream()
|
||||||
{
|
{
|
||||||
return *_pStream;
|
return *_pStream;
|
||||||
}
|
}
|
||||||
|
|
||||||
~Preprocessor()
|
~Preprocessor()
|
||||||
{
|
{
|
||||||
int c = _pStream->get();
|
int c = _pStream->get();
|
||||||
@ -101,7 +100,7 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
ProcessHandle _proc;
|
ProcessHandle _proc;
|
||||||
std::istream* _pStream;
|
std::istream* _pStream;
|
||||||
@ -112,7 +111,7 @@ private:
|
|||||||
class PocoDocApp: public Application
|
class PocoDocApp: public Application
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
PocoDocApp():
|
PocoDocApp():
|
||||||
_helpRequested(false),
|
_helpRequested(false),
|
||||||
_writeEclipseTOC(false)
|
_writeEclipseTOC(false)
|
||||||
{
|
{
|
||||||
@ -123,23 +122,23 @@ public:
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void initialize(Application& self)
|
void initialize(Application& self)
|
||||||
{
|
{
|
||||||
loadConfiguration(); // load default configuration files, if present
|
loadConfiguration(); // load default configuration files, if present
|
||||||
Application::initialize(self);
|
Application::initialize(self);
|
||||||
}
|
}
|
||||||
|
|
||||||
void uninitialize()
|
void uninitialize()
|
||||||
{
|
{
|
||||||
Application::uninitialize();
|
Application::uninitialize();
|
||||||
}
|
}
|
||||||
|
|
||||||
void reinitialize(Application& self)
|
void reinitialize(Application& self)
|
||||||
{
|
{
|
||||||
Application::reinitialize(self);
|
Application::reinitialize(self);
|
||||||
}
|
}
|
||||||
|
|
||||||
void defineOptions(OptionSet& options)
|
void defineOptions(OptionSet& options)
|
||||||
{
|
{
|
||||||
Application::defineOptions(options);
|
Application::defineOptions(options);
|
||||||
@ -163,14 +162,14 @@ protected:
|
|||||||
.repeatable(false)
|
.repeatable(false)
|
||||||
.callback(OptionCallback<PocoDocApp>(this, &PocoDocApp::handleEclipse)));
|
.callback(OptionCallback<PocoDocApp>(this, &PocoDocApp::handleEclipse)));
|
||||||
}
|
}
|
||||||
|
|
||||||
void handleHelp(const std::string& name, const std::string& value)
|
void handleHelp(const std::string& name, const std::string& value)
|
||||||
{
|
{
|
||||||
_helpRequested = true;
|
_helpRequested = true;
|
||||||
displayHelp();
|
displayHelp();
|
||||||
stopOptionsProcessing();
|
stopOptionsProcessing();
|
||||||
}
|
}
|
||||||
|
|
||||||
void handleEclipse(const std::string& name, const std::string& value)
|
void handleEclipse(const std::string& name, const std::string& value)
|
||||||
{
|
{
|
||||||
_writeEclipseTOC = true;
|
_writeEclipseTOC = true;
|
||||||
@ -180,7 +179,7 @@ protected:
|
|||||||
{
|
{
|
||||||
loadConfiguration(value, -200);
|
loadConfiguration(value, -200);
|
||||||
}
|
}
|
||||||
|
|
||||||
void displayHelp()
|
void displayHelp()
|
||||||
{
|
{
|
||||||
HelpFormatter helpFormatter(options());
|
HelpFormatter helpFormatter(options());
|
||||||
@ -189,7 +188,7 @@ protected:
|
|||||||
helpFormatter.setHeader("Applied Informatics' super duper documentation builder.");
|
helpFormatter.setHeader("Applied Informatics' super duper documentation builder.");
|
||||||
helpFormatter.format(std::cout);
|
helpFormatter.format(std::cout);
|
||||||
}
|
}
|
||||||
|
|
||||||
void buildFileList(std::set<std::string>& files)
|
void buildFileList(std::set<std::string>& files)
|
||||||
{
|
{
|
||||||
std::set<std::string> temp;
|
std::set<std::string> temp;
|
||||||
@ -215,20 +214,23 @@ protected:
|
|||||||
files.insert(*it);
|
files.insert(*it);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Preprocessor* preprocess(const std::string& file)
|
Preprocessor* preprocess(const std::string& file)
|
||||||
{
|
{
|
||||||
Path pp(file);
|
Path pp(file);
|
||||||
pp.setExtension("i");
|
pp.setExtension("i");
|
||||||
std::string comp = "PocoDoc.compiler";
|
std::string comp = "PocoDoc.compiler";
|
||||||
if (Environment::osFamilyWindows())
|
std::string platformComp(comp);
|
||||||
comp += ".windows";
|
|
||||||
|
if (Environment::isWindows())
|
||||||
|
platformComp += ".windows";
|
||||||
else
|
else
|
||||||
comp += ".unix";
|
platformComp += ".unix";
|
||||||
std::string exec = config().getString(comp + ".exec");
|
|
||||||
std::string opts = config().getString(comp + ".options");
|
std::string exec = config().getString(platformComp + ".exec", config().getString(comp + ".exec"));
|
||||||
std::string path = config().getString(comp + ".path", "");
|
std::string opts = config().getString(platformComp + ".options", config().getString(comp + ".options"));
|
||||||
bool usePipe = config().getBool(comp + ".usePipe", false);
|
std::string path = config().getString(platformComp + ".path", config().getString(comp + ".path", ""));
|
||||||
|
bool usePipe = config().getBool(platformComp + ".usePipe", config().getBool(comp + ".usePipe", false));
|
||||||
|
|
||||||
std::string popts;
|
std::string popts;
|
||||||
for (std::string::const_iterator it = opts.begin(); it != opts.end(); ++it)
|
for (std::string::const_iterator it = opts.begin(); it != opts.end(); ++it)
|
||||||
@ -241,7 +243,7 @@ protected:
|
|||||||
StringTokenizer tokenizer(popts, ",\n", StringTokenizer::TOK_IGNORE_EMPTY | StringTokenizer::TOK_TRIM);
|
StringTokenizer tokenizer(popts, ",\n", StringTokenizer::TOK_IGNORE_EMPTY | StringTokenizer::TOK_TRIM);
|
||||||
std::vector<std::string> args(tokenizer.begin(), tokenizer.end());
|
std::vector<std::string> args(tokenizer.begin(), tokenizer.end());
|
||||||
args.push_back(file);
|
args.push_back(file);
|
||||||
|
|
||||||
if (!path.empty())
|
if (!path.empty())
|
||||||
{
|
{
|
||||||
std::string newPath(Environment::get("PATH"));
|
std::string newPath(Environment::get("PATH"));
|
||||||
@ -249,16 +251,16 @@ protected:
|
|||||||
newPath += path;
|
newPath += path;
|
||||||
Environment::set("PATH", path);
|
Environment::set("PATH", path);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (usePipe)
|
if (usePipe)
|
||||||
{
|
{
|
||||||
Poco::Pipe inPipe;
|
Poco::Pipe inPipe;
|
||||||
ProcessHandle proc = Process::launch(exec, args, 0, &inPipe, 0);
|
ProcessHandle proc = Process::launch(exec, args, 0, &inPipe, 0);
|
||||||
return new Preprocessor(proc, new Poco::PipeInputStream(inPipe));
|
return new Preprocessor(proc, new Poco::PipeInputStream(inPipe));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ProcessHandle proc = Process::launch(exec, args);
|
ProcessHandle proc = Process::launch(exec, args);
|
||||||
proc.wait();
|
proc.wait();
|
||||||
return new Preprocessor(proc, new std::ifstream(pp.getFileName().c_str()), pp.getFileName());
|
return new Preprocessor(proc, new std::ifstream(pp.getFileName().c_str()), pp.getFileName());
|
||||||
}
|
}
|
||||||
@ -300,7 +302,7 @@ protected:
|
|||||||
}
|
}
|
||||||
return errors;
|
return errors;
|
||||||
}
|
}
|
||||||
|
|
||||||
void fixup()
|
void fixup()
|
||||||
{
|
{
|
||||||
logger().information("Fixing-up class hierarchies");
|
logger().information("Fixing-up class hierarchies");
|
||||||
@ -313,7 +315,7 @@ protected:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void writeDoc()
|
void writeDoc()
|
||||||
{
|
{
|
||||||
logger().information("Generating documentation");
|
logger().information("Generating documentation");
|
||||||
@ -321,9 +323,9 @@ protected:
|
|||||||
path.makeDirectory();
|
path.makeDirectory();
|
||||||
File file(path);
|
File file(path);
|
||||||
file.createDirectories();
|
file.createDirectories();
|
||||||
|
|
||||||
DocWriter writer(_gst, path.toString(), config().getBool("PocoDoc.prettifyCode", false), _writeEclipseTOC);
|
DocWriter writer(_gst, path.toString(), config().getBool("PocoDoc.prettifyCode", false), _writeEclipseTOC);
|
||||||
|
|
||||||
if (config().hasProperty("PocoDoc.pages"))
|
if (config().hasProperty("PocoDoc.pages"))
|
||||||
{
|
{
|
||||||
std::string pages = config().getString("PocoDoc.pages");
|
std::string pages = config().getString("PocoDoc.pages");
|
||||||
@ -339,13 +341,13 @@ protected:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
writer.write();
|
writer.write();
|
||||||
|
|
||||||
if (_writeEclipseTOC)
|
if (_writeEclipseTOC)
|
||||||
{
|
{
|
||||||
writer.writeEclipseTOC();
|
writer.writeEclipseTOC();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void copyResources()
|
void copyResources()
|
||||||
{
|
{
|
||||||
logger().information("Copying resources");
|
logger().information("Copying resources");
|
||||||
@ -373,7 +375,7 @@ protected:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void copyResource(const Path& source, const Path& dest)
|
void copyResource(const Path& source, const Path& dest)
|
||||||
{
|
{
|
||||||
logger().information(std::string("Copying resource ") + source.toString() + " to " + dest.toString());
|
logger().information(std::string("Copying resource ") + source.toString() + " to " + dest.toString());
|
||||||
@ -383,7 +385,7 @@ protected:
|
|||||||
else
|
else
|
||||||
copyFile(source, dest);
|
copyFile(source, dest);
|
||||||
}
|
}
|
||||||
|
|
||||||
void copyFile(const Path& source, const Path& dest)
|
void copyFile(const Path& source, const Path& dest)
|
||||||
{
|
{
|
||||||
Path dd(dest);
|
Path dd(dest);
|
||||||
@ -409,7 +411,7 @@ protected:
|
|||||||
sf.copyTo(dd.toString());
|
sf.copyTo(dd.toString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void copyDirectory(const Path& source, const Path& dest)
|
void copyDirectory(const Path& source, const Path& dest)
|
||||||
{
|
{
|
||||||
Path src(source);
|
Path src(source);
|
||||||
@ -453,7 +455,7 @@ protected:
|
|||||||
}
|
}
|
||||||
return Application::EXIT_OK;
|
return Application::EXIT_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string generateGoogleAnalyticsCode()
|
std::string generateGoogleAnalyticsCode()
|
||||||
{
|
{
|
||||||
std::stringstream ostr;
|
std::stringstream ostr;
|
||||||
@ -474,7 +476,7 @@ protected:
|
|||||||
}
|
}
|
||||||
return ostr.str();
|
return ostr.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool _helpRequested;
|
bool _helpRequested;
|
||||||
bool _writeEclipseTOC;
|
bool _writeEclipseTOC;
|
||||||
|
@ -3,7 +3,7 @@ AAAIntroduction
|
|||||||
|
|
||||||
!!!Introduction
|
!!!Introduction
|
||||||
|
|
||||||
Starting with release 1.4.2 the POCO C++ Libraries can be used on
|
Starting with release 1.4.2 the POCO C++ Libraries can be used on
|
||||||
Android, using the NDK r6. The gmake-based build system (also used
|
Android, using the NDK r6. The gmake-based build system (also used
|
||||||
for Mac OS X, Linux, etc.) is used to build the libraries.
|
for Mac OS X, Linux, etc.) is used to build the libraries.
|
||||||
A standalone "customized" toolchain for Android (see below) is required.
|
A standalone "customized" toolchain for Android (see below) is required.
|
||||||
@ -18,7 +18,7 @@ Please refer to the Android NDK Dev Guide document "Standalone Toolchain", secti
|
|||||||
|
|
||||||
Typically, you'll run a command like:
|
Typically, you'll run a command like:
|
||||||
|
|
||||||
$NDK/build/tools/make-standalone-toolchain.sh --platform=android-8 --install-dir=$HOME/my-android-toolchain
|
$NDK/build/tools/make-standalone-toolchain.sh --arch arm --install-dir=$HOME/my-android-toolchain/arm
|
||||||
----
|
----
|
||||||
|
|
||||||
Then, add the directory containing the toolchain executables to your <[$PATH]>:
|
Then, add the directory containing the toolchain executables to your <[$PATH]>:
|
||||||
@ -33,7 +33,7 @@ When compiling the POCO C++ Libraries for a Android target, as well as
|
|||||||
when including POCO C++ Libraries headers in a project for a Android
|
when including POCO C++ Libraries headers in a project for a Android
|
||||||
target, the preprocessor macro <[POCO_ANDROID]> must be defined. This is
|
target, the preprocessor macro <[POCO_ANDROID]> must be defined. This is
|
||||||
because the Android NDK GCC compiler does not provide a predefined macro that
|
because the Android NDK GCC compiler does not provide a predefined macro that
|
||||||
allows for reliable detection of an Android target.
|
allows for reliable detection of an Android target.
|
||||||
|
|
||||||
|
|
||||||
!!!Restrictions
|
!!!Restrictions
|
||||||
@ -43,19 +43,19 @@ However, there are a few restrictions due to the Binoic C library used by Androi
|
|||||||
|
|
||||||
!!Poco::NamedEvent and Poco::NamedMutex
|
!!Poco::NamedEvent and Poco::NamedMutex
|
||||||
|
|
||||||
These classes are not supported on Android. While Poco::NamedEvent and
|
These classes are not supported on Android. While Poco::NamedEvent and
|
||||||
Poco::NamedMutex objects can be created, any attempt to call a method
|
Poco::NamedMutex objects can be created, any attempt to call a method
|
||||||
of these classes will result in a Poco::NotImplementedException being thrown.
|
of these classes will result in a Poco::NotImplementedException being thrown.
|
||||||
|
|
||||||
!!Poco::SharedMemory
|
!!Poco::SharedMemory
|
||||||
|
|
||||||
Shared memory is not supported on Android.
|
Shared memory is not supported on Android.
|
||||||
|
|
||||||
!!Poco::FPEnvironment
|
!!Poco::FPEnvironment
|
||||||
|
|
||||||
The Poco::FPEnvironment class is not available on Android and
|
The Poco::FPEnvironment class is not available on Android and
|
||||||
cannot be used.
|
cannot be used.
|
||||||
|
|
||||||
!!Poco::RWLock
|
!!Poco::RWLock
|
||||||
|
|
||||||
On Android, Poco::RWLock is an ordinary mutex.
|
On Android, Poco::RWLock is an ordinary mutex.
|
||||||
@ -65,24 +65,22 @@ On Android, Poco::RWLock is an ordinary mutex.
|
|||||||
|
|
||||||
!!Using POCO's GNU Make-based Build System
|
!!Using POCO's GNU Make-based Build System
|
||||||
|
|
||||||
The <*Android*> build configuration (located in <*$POCO_BASE/build/config/Android*>)
|
The <*Android*> build configuration (located in <*$POCO_BASE/build/config/Android*>)
|
||||||
is used to cross-build for Android from a Linux or Mac OS X host.
|
is used to cross-build for Android from a Linux or Mac OS X host.
|
||||||
|
|
||||||
To build the POCO C++ Libraries (static) on a Linux or Mac OS X host:
|
To build the POCO C++ Libraries (static) on a Linux or Mac OS X host:
|
||||||
|
|
||||||
./configure --config=Android --no-samples --no-tests
|
./configure --config=Android --no-samples --no-tests
|
||||||
./make -s -j4
|
make -s -j4
|
||||||
----
|
----
|
||||||
|
|
||||||
The default configuration builds for the <*armeabi*> platform ABI. To build for
|
The default configuration builds for the <*armeabi*> platform ABI. To build for
|
||||||
<*armeabi-v7a*>, set the <[ANDROID_ABI]> make variable to <[armeabi-v7a]>:
|
<*armeabi-v7a*>, set the <[ANDROID_ABI]> make variable to <[armeabi-v7a]>:
|
||||||
|
|
||||||
./make -s -j4 ANDROID_ABI=armeabi-v7a
|
make -s -j4 ANDROID_ABI=armeabi-v7a
|
||||||
----
|
----
|
||||||
|
|
||||||
The build configuration also supports setting the <[ANDROID_ABI]> to <[x86]>,
|
The build configuration also supports setting the <[ANDROID_ABI]> to <[x86]>.
|
||||||
but the NDK r6 standalone toolchain for x86 generated by <*make-standalone-toolchain.sh*>
|
|
||||||
lacks the C++ STL headers, so this does not work.
|
|
||||||
|
|
||||||
Depending on your specific requirements (e.g., no ARM architecture, etc.), it may be necessary
|
Depending on your specific requirements (e.g., no ARM architecture, etc.), it may be necessary
|
||||||
to modify the Android build configuration, or create a new one based on it.
|
to modify the Android build configuration, or create a new one based on it.
|
||||||
@ -100,15 +98,15 @@ POCO C++ Libraries. A sample makefile for the Foundation library is shown below.
|
|||||||
#
|
#
|
||||||
# POCO Foundation
|
# POCO Foundation
|
||||||
#
|
#
|
||||||
|
|
||||||
include $(CLEAR_VARS)
|
include $(CLEAR_VARS)
|
||||||
|
|
||||||
LOCAL_MODULE := PocoFoundation
|
LOCAL_MODULE := PocoFoundation
|
||||||
LOCAL_PATH := $(call my-dir)/src
|
LOCAL_PATH := $(call my-dir)/src
|
||||||
LOCAL_CFLAGS := -DPOCO_ANDROID -DPOCO_NO_FPENVIRONMENT -DPOCO_NO_WSTRING -DPOCO_NO_SHAREDMEMORY
|
LOCAL_CFLAGS := -DPOCO_ANDROID -DPOCO_NO_FPENVIRONMENT -DPOCO_NO_WSTRING -DPOCO_NO_SHAREDMEMORY
|
||||||
LOCAL_CPPFLAGS := -frtti -fexceptions
|
LOCAL_CPPFLAGS := -frtti -fexceptions
|
||||||
LOCAL_C_INCLUDES := $(call my-dir)/include
|
LOCAL_C_INCLUDES := $(call my-dir)/include
|
||||||
|
|
||||||
LOCAL_SRC_FILES := \
|
LOCAL_SRC_FILES := \
|
||||||
AbstractObserver.cpp \
|
AbstractObserver.cpp \
|
||||||
ActiveDispatcher.cpp \
|
ActiveDispatcher.cpp \
|
||||||
@ -271,6 +269,6 @@ POCO C++ Libraries. A sample makefile for the Foundation library is shown below.
|
|||||||
Void.cpp \
|
Void.cpp \
|
||||||
Windows1252Encoding.cpp \
|
Windows1252Encoding.cpp \
|
||||||
zutil.c
|
zutil.c
|
||||||
|
|
||||||
include $(BUILD_STATIC_LIBRARY)
|
include $(BUILD_STATIC_LIBRARY)
|
||||||
----
|
----
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#! /bin/bash
|
#! /bin/sh
|
||||||
#
|
#
|
||||||
# mkdoc
|
# mkdoc
|
||||||
#
|
#
|
||||||
|
Loading…
x
Reference in New Issue
Block a user