aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2018-10-05 05:02:49 +0200
committerdec05eba <dec05eba@protonmail.com>2020-07-06 07:39:33 +0200
commit5250cb90406693163763a214af95f670e0e3a4e0 (patch)
tree7025c762d4f53aebfdc140d615306f558fa9b69a /include
parent3059b1cb8d701cf23f3e04a8a8fdcfcaa6a397fb (diff)
Add cross compilation (mingw-w64 x86_64)
Currently only cross compiling from linux64 to win64 works. Need to test cross compilation more, currently the cross compilation uses same profile as GCC, is that correct?
Diffstat (limited to 'include')
-rw-r--r--include/Conf.hpp7
-rw-r--r--include/FileUtil.hpp1
-rw-r--r--include/PkgConfig.hpp2
-rw-r--r--include/Platform.hpp1
4 files changed, 9 insertions, 2 deletions
diff --git a/include/Conf.hpp b/include/Conf.hpp
index 17ecc6b..15c8471 100644
--- a/include/Conf.hpp
+++ b/include/Conf.hpp
@@ -107,7 +107,8 @@ namespace sibs
enum class Compiler
{
GCC,
- MSVC
+ MSVC,
+ MINGW_W64
};
enum class CVersion
@@ -303,7 +304,8 @@ namespace sibs
showWarnings(false),
zigTestAllFiles(false),
packaging(false),
- bundling(false)
+ bundling(false),
+ platform(SYSTEM_PLATFORM)
{
cmakeDirGlobal = projectPath;
cmakeDirStatic = cmakeDirGlobal;
@@ -504,6 +506,7 @@ namespace sibs
bool packaging;
bool bundling;
std::string version;
+ Platform platform;
protected:
virtual void processObject(StringView name) override;
virtual void processField(StringView name, const ConfigValue &value) override;
diff --git a/include/FileUtil.hpp b/include/FileUtil.hpp
index 3e2e302..0106c19 100644
--- a/include/FileUtil.hpp
+++ b/include/FileUtil.hpp
@@ -60,6 +60,7 @@ namespace sibs
Result<FileString> getRealPath(const _tinydir_char_t *path);
bool pathEquals(const std::string &path, const std::string &otherPath);
Result<u64> getFileLastModifiedTime(const _tinydir_char_t *path);
+ Result<bool> copyFile(const FileString &src, const FileString &dst);
}
#endif //SIBS_FILEUTIL_HPP
diff --git a/include/PkgConfig.hpp b/include/PkgConfig.hpp
index 2a52f2b..9181a2f 100644
--- a/include/PkgConfig.hpp
+++ b/include/PkgConfig.hpp
@@ -5,6 +5,7 @@
#include "Result.hpp"
#include <string>
#include <vector>
+#include "FileUtil.hpp"
namespace sibs
{
@@ -19,6 +20,7 @@ namespace sibs
class PkgConfig
{
public:
+ static void setPkgConfigPath(const FileString &path);
static Result<bool> validatePkgConfigPackageVersionExists(PackageListDependency *dependency);
static Result<bool> validatePackageExists(const std::string &name);
static Result<bool> validatePackageVersionAtLeast(const std::string &name, const std::string &version);
diff --git a/include/Platform.hpp b/include/Platform.hpp
index 995d307..74b3a3d 100644
--- a/include/Platform.hpp
+++ b/include/Platform.hpp
@@ -50,4 +50,5 @@ namespace sibs
bool containsPlatform(const std::vector<Platform> &platforms, Platform platform);
const char* asString(Platform platform);
Platform getPlatformByName(StringView name);
+ bool isSamePlatformFamily(Platform a, Platform b);
} \ No newline at end of file