From a73a86e2ad75d8f9f6b3002da5872b2647785d48 Mon Sep 17 00:00:00 2001 From: kaetemi Date: Mon, 31 Jan 2022 13:18:00 +0800 Subject: [PATCH] Add some Docker-based build environments --- tool/quick_start/common.py | 3 +- tool/quick_start/common_config.py | 25 ------------ tool/quick_start/config_default.json | 30 ++++++++------ .../docker/ryzomcore_bionic_x86_64/Dockerfile | 37 ++++++++++++++++++ .../docker/ryzomcore_focal_x86_64/Dockerfile | 39 +++++++++++++++++++ tool/quick_start/test.bat | 2 +- 6 files changed, 98 insertions(+), 38 deletions(-) create mode 100644 tool/quick_start/docker/ryzomcore_bionic_x86_64/Dockerfile create mode 100644 tool/quick_start/docker/ryzomcore_focal_x86_64/Dockerfile diff --git a/tool/quick_start/common.py b/tool/quick_start/common.py index 39cb16dbf..c5fab6617 100644 --- a/tool/quick_start/common.py +++ b/tool/quick_start/common.py @@ -7,7 +7,8 @@ NeLCodeDir = os.path.join(NeLRootDir, "code") NeLLeveldesignDir = os.path.join(NeLRootDir, "leveldesign") NeLGraphicsDir = os.path.join(NeLRootDir, "graphics") NeLSoundDir = os.path.join(NeLRootDir, "sound") -NeLBuildDir = os.path.join(NeLRootDir, "build_" + NeLHostId) +NeLBuildDirName = "build_" + NeLHostId +NeLBuildDir = os.path.join(NeLRootDir, NeLBuildDirName) NeLPipelineDir = os.path.join(NeLRootDir, "pipeline") NeLDistributionDir = os.path.join(NeLRootDir, "distribution") diff --git a/tool/quick_start/common_config.py b/tool/quick_start/common_config.py index a1057910e..3fec44e6e 100644 --- a/tool/quick_start/common_config.py +++ b/tool/quick_start/common_config.py @@ -22,14 +22,10 @@ def MergeConfig(file): config = json.load(fi) if not "Paths" in config: config["Paths"] = {} - if not "Win64" in config["Paths"]: - config["Paths"]["Win64"] = {} if not "Toolchain" in config: config["Toolchain"] = {} if not "Client" in config["Toolchain"]: config["Toolchain"]["Client"] = {} - NeLConfig["Paths"]["Win64"].update(config["Paths"]["Win64"]) - config["Paths"]["Win64"] = NeLConfig["Paths"]["Win64"] NeLConfig["Paths"].update(config["Paths"]) config["Paths"] = NeLConfig["Paths"] NeLConfig["Toolchain"]["Client"].update(config["Toolchain"]["Client"]) @@ -48,27 +44,6 @@ if "HostId" in NeLConfig: MergeConfig("config_" + NeLHostId + "_default.json") MergeConfig("config_" + NeLHostId + ".json") -fi = open(os.path.join(NeLConfigDir, "config.json"), "r") -NeLUserConfig = json.load(fi) -if not "Paths" in NeLUserConfig: - NeLUserConfig["Paths"] = {} -if not "Win64" in NeLUserConfig["Paths"]: - NeLUserConfig["Paths"]["Win64"] = {} -if not "Toolchain" in NeLUserConfig: - NeLUserConfig["Toolchain"] = {} -if not "Client" in NeLUserConfig["Toolchain"]: - NeLUserConfig["Toolchain"]["Client"] = {} -NeLConfig["Paths"]["Win64"].update(NeLUserConfig["Paths"]["Win64"]) -NeLUserConfig["Paths"]["Win64"] = NeLConfig["Paths"]["Win64"] -NeLConfig["Paths"].update(NeLUserConfig["Paths"]) -NeLUserConfig["Paths"] = NeLConfig["Paths"] -NeLConfig["Toolchain"]["Client"].update(NeLUserConfig["Toolchain"]["Client"]) -NeLUserConfig["Toolchain"]["Client"] = NeLConfig["Toolchain"]["Client"] -NeLConfig["Toolchain"].update(NeLUserConfig["Toolchain"]) -NeLUserConfig["Toolchain"] = NeLConfig["Toolchain"] -NeLConfig.update(NeLUserConfig) -fi.close() - if os.path.isfile(os.path.join(NeLConfigDir, "toolchains_" + NeLHostId + "_default.json")): fi = open(os.path.join(NeLConfigDir, "toolchains_" + NeLHostId + "_default.json"), "r") NeLToolchains = json.load(fi) diff --git a/tool/quick_start/config_default.json b/tool/quick_start/config_default.json index 68cc562cf..3a50a1286 100644 --- a/tool/quick_start/config_default.json +++ b/tool/quick_start/config_default.json @@ -1,14 +1,13 @@ { "Domains": [ "default" ], "Paths": { - "Win64": { - "Python27": "external/python27", - "RRDtool": "external/rrdtool", - "MariaDB": "external/mariadb", - "Nginx": "external/nginx", - "PHP": "external/php", - "phpMyAdmin": "external/phpmyadmin" - }, + "Python27": "external/python27", + "Python3": "external/python3", + "RRDtool": "external/rrdtool", + "MariaDB": "external/mariadb", + "Nginx": "external/nginx", + "PHP": "external/php", + "phpMyAdmin": "external/phpmyadmin", "3dsMax": "", "3dsMaxLocal": "" }, @@ -34,9 +33,9 @@ "WinXP/VS/v100/x86", "Win98/VS/v80/x86" ], - "Server": [{ "OS": "Ubuntu20", "Hunter": false }], + "Server": [{ "OS": "Ubuntu-20.04", "Hunter": false }], "Client": { - "exedll_32": [ + "exedll_win32": [ { "OS": "Win98", "Platform": "x86", "Hunter": false }, { "OS": "Win2k", "Platform": "x86", "Hunter": false }, { "OS": "WinXP", "Platform": "x86", "Hunter": false }, @@ -44,10 +43,19 @@ { "OS": "WinXP", "Platform": "x86" }, { "OS": "Win7", "Platform": "x86" } ], - "exedll_64": [ + "exedll_win64": [ { "OS": "WinXP", "Platform": "x64", "Hunter": false }, { "OS": "Win7", "Platform": "x64", "Hunter": false }, { "OS": "Win7", "Platform": "x64" } + ], + "exedll_focal_x86_64": [ + { "OS": "Ubuntu-20.04", "Platform": "x86_64", "Hunter": false } + ], + "exedll_bionic_x86_64": [ + { "OS": "Ubuntu-18.04", "Platform": "x86_64", "Hunter": false } + ], + "exedll_glibc2_27_x86_64": [ + { "Toolset": "GLIBC 2.27", "Platform": "x86_64", "Hunter": true } ] }, "Options": [ diff --git a/tool/quick_start/docker/ryzomcore_bionic_x86_64/Dockerfile b/tool/quick_start/docker/ryzomcore_bionic_x86_64/Dockerfile new file mode 100644 index 000000000..c7e76446a --- /dev/null +++ b/tool/quick_start/docker/ryzomcore_bionic_x86_64/Dockerfile @@ -0,0 +1,37 @@ +FROM --platform=linux/amd64 ubuntu:bionic +MAINTAINER Ryzom Core + +RUN apt-get update && apt-get install -y \ + software-properties-common \ + && rm -rf /var/lib/apt/lists/* + +# RUN add-apt-repository ppa:ubuntu-toolchain-r/test + +RUN apt-get update && apt-get install -y \ + cmake build-essential \ + gcc-8 g++-8 \ + && update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 60 \ + && update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 60 \ + && rm -rf /var/lib/apt/lists/* + +RUN apt-get update && apt-get install -y \ + bison autoconf automake \ + libpng-dev \ + libjpeg-dev \ + libgif-dev libfreetype6-dev \ + freeglut3-dev \ + liblua5.2-dev libluabind-dev libcpptest-dev \ + libogg-dev libvorbis-dev libopenal-dev \ + libavcodec-dev libavformat-dev libavdevice-dev libswscale-dev libpostproc-dev \ + libmysqlclient-dev \ + libxml2-dev \ + libcurl4-openssl-dev libssl-dev \ + libsquish-dev \ + liblzma-dev \ + libgsf-1-dev \ + qtbase5-dev qttools5-dev qttools5-dev-tools \ + && rm -rf /var/lib/apt/lists/* + +RUN mkdir -p /mnt/nel + +WORKDIR /mnt/nel diff --git a/tool/quick_start/docker/ryzomcore_focal_x86_64/Dockerfile b/tool/quick_start/docker/ryzomcore_focal_x86_64/Dockerfile new file mode 100644 index 000000000..171f6ff79 --- /dev/null +++ b/tool/quick_start/docker/ryzomcore_focal_x86_64/Dockerfile @@ -0,0 +1,39 @@ +FROM --platform=linux/amd64 ubuntu:focal +MAINTAINER Ryzom Core + +RUN apt-get update && apt-get install -y \ + software-properties-common \ + && rm -rf /var/lib/apt/lists/* + +# RUN add-apt-repository ppa:ubuntu-toolchain-r/test + +RUN apt-get update && apt-get install -y \ + cmake build-essential \ + && rm -rf /var/lib/apt/lists/* + +# Ubuntu 16.04 LTS and Ubuntu 18.04 LTS: +# sudo apt install gcc-8 g++-8 -y +# sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 60 +# sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 60 + +RUN apt-get update && apt-get install -y \ + bison autoconf automake \ + libpng-dev \ + libjpeg-dev \ + libgif-dev libfreetype6-dev \ + freeglut3-dev \ + liblua5.2-dev libluabind-dev libcpptest-dev \ + libogg-dev libvorbis-dev libopenal-dev \ + libavcodec-dev libavformat-dev libavdevice-dev libswscale-dev libpostproc-dev \ + libmysqlclient-dev \ + libxml2-dev \ + libcurl4-openssl-dev libssl-dev \ + libsquish-dev \ + liblzma-dev \ + libgsf-1-dev \ + qtbase5-dev qttools5-dev qttools5-dev-tools \ + && rm -rf /var/lib/apt/lists/* + +RUN mkdir -p /mnt/nel + +WORKDIR /mnt/nel diff --git a/tool/quick_start/test.bat b/tool/quick_start/test.bat index 63e8e85e3..2b3763856 100644 --- a/tool/quick_start/test.bat +++ b/tool/quick_start/test.bat @@ -1,4 +1,4 @@ -rem ..\..\..\external\python3\python.exe configure_toolchains.py +..\..\..\external\python3\python.exe configure_toolchains.py rem ..\..\..\external\python3\python.exe find_toolchain.py rem ..\..\..\external\python3\python.exe find_max.py ..\..\..\external\python3\python.exe print_summary.py