diff options
Diffstat (limited to 'Swiften/Config')
-rw-r--r-- | Swiften/Config/.gitignore | 2 | ||||
-rw-r--r-- | Swiften/Config/SConscript | 31 | ||||
-rw-r--r-- | Swiften/Config/swiften-config.cpp | 13 |
3 files changed, 32 insertions, 14 deletions
diff --git a/Swiften/Config/.gitignore b/Swiften/Config/.gitignore index 2ae0953..e7b484e 100644 --- a/Swiften/Config/.gitignore +++ b/Swiften/Config/.gitignore @@ -2,2 +2,4 @@ swiften-config swiften-config.h Paths.cpp +Path.cpp +String.cpp diff --git a/Swiften/Config/SConscript b/Swiften/Config/SConscript index 357a5e6..837884b 100644 --- a/Swiften/Config/SConscript +++ b/Swiften/Config/SConscript @@ -7,5 +7,5 @@ def replaceSwiftenPath(input) : def cStringVariable(env, cVar, sconsVar) : - result = "const char* " + cVar + "[] = {\n" + result = "static const char* " + cVar + "[] = {\n" # FIXME: Probably not very robust for var in sconsVar.split(" ") : @@ -18,21 +18,36 @@ config_flags = "" swiften_env = env.Clone() -swiften_env.MergeFlags(swiften_env["SWIFTEN_FLAGS"]) -swiften_env.MergeFlags(swiften_env["SWIFTEN_DEP_FLAGS"]) +swiften_env.UseFlags(swiften_env["SWIFTEN_FLAGS"]) +swiften_env.UseFlags(swiften_env["SWIFTEN_DEP_FLAGS"]) -cppflags = replaceSwiftenPath(" ".join([swiften_env.subst("$_CPPDEFFLAGS"), swiften_env.subst("$_CPPINCFLAGS")])) +cppflags = replaceSwiftenPath(" ".join([ + swiften_env.subst("$CPPFLAGS").replace("-isystem ","-I"), + swiften_env.subst("$_CPPDEFFLAGS"), + swiften_env.subst("$_CPPINCFLAGS")])) config_flags += cStringVariable(swiften_env, "CPPFLAGS", cppflags) -libflags = replaceSwiftenPath(" ".join([swiften_env.subst("$_LIBDIRFLAGS"), swiften_env.subst("$_LIBFLAGS")])) +libflags = replaceSwiftenPath(" ".join([ + swiften_env.subst("$_LIBDIRFLAGS"), + swiften_env.subst("$_LIBFLAGS"), + swiften_env.subst("$_FRAMEWORKPATH"), + swiften_env.subst("$_FRAMEWORKS"), + swiften_env.subst("$_FRAMEWORKSFLAGS") + ])) config_flags += cStringVariable(swiften_env, "LIBFLAGS", libflags) config_env = env.Clone() # Create a local copy of Paths.cpp to avoid a Swiften dependency -config_env.Install(".", "#/Swiften/Base/Paths.cpp") -config_env.MergeFlags(config_env["BOOST_FLAGS"]) -config_env.MergeFlags(config_env["PLATFORM_FLAGS"]) +config_env.Install(".", [ + "#/Swiften/Base/Paths.cpp", + "#/Swiften/Base/Path.cpp", + "#/Swiften/Base/String.cpp", +]) +config_env.UseFlags(config_env["BOOST_FLAGS"]) +config_env.UseFlags(config_env["PLATFORM_FLAGS"]) config_env.WriteVal("swiften-config.h", config_env.Value(config_flags)) swiften_config = config_env.Program("swiften-config", [ "Paths.cpp", + "Path.cpp", + "String.cpp", "swiften-config.cpp" ]) diff --git a/Swiften/Config/swiften-config.cpp b/Swiften/Config/swiften-config.cpp index 81a8357..778134d 100644 --- a/Swiften/Config/swiften-config.cpp +++ b/Swiften/Config/swiften-config.cpp @@ -17,4 +17,5 @@ #include <Swiften/Base/Platform.h> #include <Swiften/Base/Paths.h> +#include <Swiften/Base/Path.h> #include <Swiften/Version.h> @@ -23,5 +24,5 @@ using namespace Swift; -void printFlags(const std::vector<std::string>& flags) { +static void printFlags(const std::vector<std::string>& flags) { for (size_t i = 0; i < flags.size(); ++i) { if (i > 0) { @@ -91,10 +92,10 @@ int main(int argc, char* argv[]) { if (inPlace) { std::string lib = libs[i]; - boost::replace_all(lib, "#", topSourcePath.string()); + boost::replace_all(lib, "#", pathToString(topSourcePath)); libs[i] = lib; } else { std::string lib = libs[i]; - boost::replace_all(lib, "#", (topInstallPath / "lib").string()); + boost::replace_all(lib, "#", pathToString(topInstallPath / "lib")); boost::erase_all(lib, "/Swiften"); libs[i] = lib; @@ -104,10 +105,10 @@ int main(int argc, char* argv[]) { if (inPlace) { std::string cflag = cflags[i]; - boost::replace_all(cflag, "#", topSourcePath.string()); + boost::replace_all(cflag, "#", pathToString(topSourcePath)); cflags[i] = cflag; } else { std::string cflag = cflags[i]; - boost::replace_all(cflag, "#", (topInstallPath / "include").string()); + boost::replace_all(cflag, "#", pathToString(topInstallPath / "include")); cflags[i] = cflag; } @@ -119,5 +120,5 @@ int main(int argc, char* argv[]) { printFlags(libs); } - else if (vm.count("cflags") > 0) { + if (vm.count("cflags") > 0) { printFlags(cflags); } |