Merge commit '73bed054b87399484e39f6972d30f91a404daba8'
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
FROM emscripten/emsdk:3.1.28
|
||||
FROM emscripten/emsdk:3.1.42
|
||||
|
||||
COPY emsdk-liblzma.patch /
|
||||
RUN cd /emsdk/upstream/emscripten && patch -p1 < /emsdk-liblzma.patch
|
||||
|
||||
@@ -7,7 +7,7 @@ It takes care of a few things:
|
||||
|
||||
First, build the docker image by navigating in the folder this `README.md` is in, and executing:
|
||||
```
|
||||
docker build -t emsdk-lzma .
|
||||
docker build -t emsdk-openttd .
|
||||
```
|
||||
|
||||
Next, navigate back to the root folder of this project.
|
||||
@@ -15,15 +15,15 @@ Next, navigate back to the root folder of this project.
|
||||
Now we build the host tools first:
|
||||
```
|
||||
mkdir build-host
|
||||
docker run -it --rm -v $(pwd):$(pwd) -u $(id -u):$(id -g) --workdir $(pwd)/build-host emsdk-lzma cmake .. -DOPTION_TOOLS_ONLY=ON
|
||||
docker run -it --rm -v $(pwd):$(pwd) -u $(id -u):$(id -g) --workdir $(pwd)/build-host emsdk-lzma make -j$(nproc) tools
|
||||
docker run -it --rm -v $(pwd):$(pwd) -u $(id -u):$(id -g) --workdir $(pwd)/build-host emsdk-openttd cmake .. -DOPTION_TOOLS_ONLY=ON
|
||||
docker run -it --rm -v $(pwd):$(pwd) -u $(id -u):$(id -g) --workdir $(pwd)/build-host emsdk-openttd make -j$(nproc) tools
|
||||
```
|
||||
|
||||
Finally, we build the actual game:
|
||||
```
|
||||
mkdir build
|
||||
docker run -it --rm -v $(pwd):$(pwd) -u $(id -u):$(id -g) --workdir $(pwd)/build emsdk-lzma emcmake cmake .. -DHOST_BINARY_DIR=../build-host -DCMAKE_BUILD_TYPE=Release -DOPTION_USE_ASSERTS=OFF
|
||||
docker run -it --rm -v $(pwd):$(pwd) -u $(id -u):$(id -g) --workdir $(pwd)/build emsdk-lzma emmake make -j$(nproc)
|
||||
docker run -it --rm -v $(pwd):$(pwd) -u $(id -u):$(id -g) --workdir $(pwd)/build emsdk-openttd emcmake cmake .. -DHOST_BINARY_DIR=../build-host -DCMAKE_BUILD_TYPE=Release -DOPTION_USE_ASSERTS=OFF
|
||||
docker run -it --rm -v $(pwd):$(pwd) -u $(id -u):$(id -g) --workdir $(pwd)/build emsdk-openttd emmake make -j$(nproc)
|
||||
```
|
||||
|
||||
In the `build` folder you will now see `openttd.html`.
|
||||
|
||||
20
os/emscripten/cmake/FindLibLZMA.cmake
Normal file
20
os/emscripten/cmake/FindLibLZMA.cmake
Normal file
@@ -0,0 +1,20 @@
|
||||
# LibLZMA is a custom addition to the emscripten SDK, so it is possible
|
||||
# someone patched their SDK. Test out if the SDK supports LibLZMA.
|
||||
include(CheckCXXSourceCompiles)
|
||||
set(CMAKE_REQUIRED_FLAGS "-sUSE_LIBLZMA=1")
|
||||
|
||||
check_cxx_source_compiles("
|
||||
#include <lzma.h>
|
||||
int main() { return 0; }"
|
||||
LIBLZMA_FOUND
|
||||
)
|
||||
|
||||
if (LIBLZMA_FOUND)
|
||||
add_library(LibLZMA::LibLZMA INTERFACE IMPORTED)
|
||||
set_target_properties(LibLZMA::LibLZMA PROPERTIES
|
||||
INTERFACE_COMPILE_OPTIONS "-sUSE_LIBLZMA=1"
|
||||
INTERFACE_LINK_LIBRARIES "-sUSE_LIBLZMA=1"
|
||||
)
|
||||
else()
|
||||
message(WARNING "You are using an emscripten SDK without LibLZMA support. Many savegames won't be able to load in OpenTTD. Please apply 'emsdk-liblzma.patch' to your local emsdk installation.")
|
||||
endif()
|
||||
198
os/emscripten/emsdk-liblzma.patch
Normal file
198
os/emscripten/emsdk-liblzma.patch
Normal file
@@ -0,0 +1,198 @@
|
||||
From 84d0e9112d5c87a714abd21ec8547921f46f37b5 Mon Sep 17 00:00:00 2001
|
||||
From: milek7 <me@milek7.pl>
|
||||
Date: Tue, 8 Dec 2020 01:03:31 +0100
|
||||
Subject: [PATCH] Add liblzma port
|
||||
|
||||
---
|
||||
src/settings.js | 4 ++
|
||||
tools/ports/liblzma.py | 151 +++++++++++++++++++++++++++++++++++++++++
|
||||
tools/settings.py | 1 +
|
||||
3 files changed, 156 insertions(+)
|
||||
create mode 100644 tools/ports/liblzma.py
|
||||
|
||||
diff --git a/src/settings.js b/src/settings.js
|
||||
index f93140d..7b6bec9 100644
|
||||
--- a/src/settings.js
|
||||
+++ b/src/settings.js
|
||||
@@ -1451,6 +1451,10 @@ var USE_GIFLIB = false;
|
||||
// [compile+link]
|
||||
var USE_LIBJPEG = false;
|
||||
|
||||
+// 1 = use liblzma from emscripten-ports
|
||||
+// [compile+link]
|
||||
+var USE_LIBLZMA = false;
|
||||
+
|
||||
// 1 = use libpng from emscripten-ports
|
||||
// [compile+link]
|
||||
var USE_LIBPNG = false;
|
||||
diff --git a/tools/ports/liblzma.py b/tools/ports/liblzma.py
|
||||
new file mode 100644
|
||||
index 0000000..6872a8b
|
||||
--- /dev/null
|
||||
+++ b/tools/ports/liblzma.py
|
||||
@@ -0,0 +1,151 @@
|
||||
+# Copyright 2020 The Emscripten Authors. All rights reserved.
|
||||
+# Emscripten is available under two separate licenses, the MIT license and the
|
||||
+# University of Illinois/NCSA Open Source License. Both these licenses can be
|
||||
+# found in the LICENSE file.
|
||||
+
|
||||
+import os
|
||||
+import shutil
|
||||
+import logging
|
||||
+from pathlib import Path
|
||||
+
|
||||
+VERSION = '5.4.2'
|
||||
+HASH = '149f980338bea3d66de1ff5994b2b236ae1773135eda68b62b009df0c9dcdf5467f8cb2c06da95a71b6556d60bd3d21f475feced34d5dfdb80ee95416a2f9737'
|
||||
+
|
||||
+
|
||||
+def needed(settings):
|
||||
+ return settings.USE_LIBLZMA
|
||||
+
|
||||
+
|
||||
+def get(ports, settings, shared):
|
||||
+ ports.fetch_project('liblzma', f'https://tukaani.org/xz/xz-{VERSION}.tar.gz', sha512hash=HASH)
|
||||
+
|
||||
+ def create(final):
|
||||
+ logging.info('building port: liblzma')
|
||||
+
|
||||
+ ports.clear_project_build('liblzma')
|
||||
+
|
||||
+ source_path = os.path.join(ports.get_dir(), 'liblzma', f'xz-{VERSION}', 'src', 'liblzma')
|
||||
+ ports.write_file(os.path.join(source_path, 'config.h'), config_h)
|
||||
+ ports.install_headers(os.path.join(source_path, 'api'), pattern='lzma.h')
|
||||
+ ports.install_headers(os.path.join(source_path, 'api', 'lzma'), pattern='*.h', target='lzma')
|
||||
+
|
||||
+ build_flags = ['-DHAVE_CONFIG_H', '-DTUKLIB_SYMBOL_PREFIX=lzma_', '-fvisibility=hidden']
|
||||
+ exclude_files = ['crc32_small.c', 'crc64_small.c', 'crc32_tablegen.c', 'crc64_tablegen.c', 'price_tablegen.c', 'fastpos_tablegen.c',
|
||||
+ 'tuklib_exit.c', 'tuklib_mbstr_fw.c', 'tuklib_mbstr_width.c', 'tuklib_open_stdxxx.c', 'tuklib_progname.c']
|
||||
+ include_dirs_rel = ['../common', 'api', 'check', 'common', 'delta', 'lz', 'lzma', 'rangecoder', 'simple']
|
||||
+
|
||||
+ include_dirs = [os.path.join(source_path, p) for p in include_dirs_rel]
|
||||
+ ports.build_port(source_path, final, 'liblzma', flags=build_flags, exclude_files=exclude_files, includes=include_dirs)
|
||||
+
|
||||
+ return [shared.cache.get_lib('liblzma.a', create, what='port')]
|
||||
+
|
||||
+
|
||||
+def clear(ports, settings, shared):
|
||||
+ shared.cache.erase_lib('liblzma.a')
|
||||
+
|
||||
+
|
||||
+def process_args(ports):
|
||||
+ return []
|
||||
+
|
||||
+
|
||||
+def show():
|
||||
+ return 'liblzma (USE_LIBLZMA=1; public domain)'
|
||||
+
|
||||
+
|
||||
+config_h = '''
|
||||
+#define ASSUME_RAM 128
|
||||
+#define ENABLE_NLS 1
|
||||
+#define HAVE_CHECK_CRC32 1
|
||||
+#define HAVE_CHECK_CRC64 1
|
||||
+#define HAVE_CHECK_SHA256 1
|
||||
+#define HAVE_CLOCK_GETTIME 1
|
||||
+#define HAVE_DCGETTEXT 1
|
||||
+#define HAVE_DECL_CLOCK_MONOTONIC 1
|
||||
+#define HAVE_DECL_PROGRAM_INVOCATION_NAME 1
|
||||
+#define HAVE_DECODERS 1
|
||||
+#define HAVE_DECODER_ARM 1
|
||||
+#define HAVE_DECODER_ARMTHUMB 1
|
||||
+#define HAVE_DECODER_DELTA 1
|
||||
+#define HAVE_DECODER_IA64 1
|
||||
+#define HAVE_DECODER_LZMA1 1
|
||||
+#define HAVE_DECODER_LZMA2 1
|
||||
+#define HAVE_DECODER_POWERPC 1
|
||||
+#define HAVE_DECODER_SPARC 1
|
||||
+#define HAVE_DECODER_X86 1
|
||||
+#define HAVE_DLFCN_H 1
|
||||
+#define HAVE_ENCODERS 1
|
||||
+#define HAVE_ENCODER_ARM 1
|
||||
+#define HAVE_ENCODER_ARMTHUMB 1
|
||||
+#define HAVE_ENCODER_DELTA 1
|
||||
+#define HAVE_ENCODER_IA64 1
|
||||
+#define HAVE_ENCODER_LZMA1 1
|
||||
+#define HAVE_ENCODER_LZMA2 1
|
||||
+#define HAVE_ENCODER_POWERPC 1
|
||||
+#define HAVE_ENCODER_SPARC 1
|
||||
+#define HAVE_ENCODER_X86 1
|
||||
+#define HAVE_FCNTL_H 1
|
||||
+#define HAVE_FUTIMENS 1
|
||||
+#define HAVE_GETOPT_H 1
|
||||
+#define HAVE_GETOPT_LONG 1
|
||||
+#define HAVE_GETTEXT 1
|
||||
+#define HAVE_IMMINTRIN_H 1
|
||||
+#define HAVE_INTTYPES_H 1
|
||||
+#define HAVE_LIMITS_H 1
|
||||
+#define HAVE_MBRTOWC 1
|
||||
+#define HAVE_MEMORY_H 1
|
||||
+#define HAVE_MF_BT2 1
|
||||
+#define HAVE_MF_BT3 1
|
||||
+#define HAVE_MF_BT4 1
|
||||
+#define HAVE_MF_HC3 1
|
||||
+#define HAVE_MF_HC4 1
|
||||
+#define HAVE_OPTRESET 1
|
||||
+#define HAVE_POSIX_FADVISE 1
|
||||
+#define HAVE_PTHREAD_CONDATTR_SETCLOCK 1
|
||||
+#define HAVE_PTHREAD_PRIO_INHERIT 1
|
||||
+#define HAVE_STDBOOL_H 1
|
||||
+#define HAVE_STDINT_H 1
|
||||
+#define HAVE_STDLIB_H 1
|
||||
+#define HAVE_STRINGS_H 1
|
||||
+#define HAVE_STRING_H 1
|
||||
+#define HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC 1
|
||||
+#define HAVE_SYS_PARAM_H 1
|
||||
+#define HAVE_SYS_STAT_H 1
|
||||
+#define HAVE_SYS_TIME_H 1
|
||||
+#define HAVE_SYS_TYPES_H 1
|
||||
+#define HAVE_UINTPTR_T 1
|
||||
+#define HAVE_UNISTD_H 1
|
||||
+#define HAVE_VISIBILITY 1
|
||||
+#define HAVE_WCWIDTH 1
|
||||
+#define HAVE__BOOL 1
|
||||
+#define HAVE___BUILTIN_ASSUME_ALIGNED 1
|
||||
+#define HAVE___BUILTIN_BSWAPXX 1
|
||||
+#define MYTHREAD_POSIX 1
|
||||
+#define NDEBUG 1
|
||||
+#define PACKAGE "xz"
|
||||
+#define PACKAGE_BUGREPORT "lasse.collin@tukaani.org"
|
||||
+#define PACKAGE_NAME "XZ Utils"
|
||||
+#define PACKAGE_STRING "XZ Utils 5.4.0"
|
||||
+#define PACKAGE_TARNAME "xz"
|
||||
+#define PACKAGE_VERSION "5.4.0"
|
||||
+#define SIZEOF_SIZE_T 4
|
||||
+#define STDC_HEADERS 1
|
||||
+#define TUKLIB_CPUCORES_SYSCONF 1
|
||||
+#define TUKLIB_FAST_UNALIGNED_ACCESS 1
|
||||
+#define TUKLIB_PHYSMEM_SYSCONF 1
|
||||
+#ifndef _ALL_SOURCE
|
||||
+# define _ALL_SOURCE 1
|
||||
+#endif
|
||||
+#ifndef _GNU_SOURCE
|
||||
+# define _GNU_SOURCE 1
|
||||
+#endif
|
||||
+#ifndef _POSIX_PTHREAD_SEMANTICS
|
||||
+# define _POSIX_PTHREAD_SEMANTICS 1
|
||||
+#endif
|
||||
+#ifndef _TANDEM_SOURCE
|
||||
+# define _TANDEM_SOURCE 1
|
||||
+#endif
|
||||
+#ifndef __EXTENSIONS__
|
||||
+# define __EXTENSIONS__ 1
|
||||
+#endif
|
||||
+#define VERSION "5.4.0"
|
||||
+'''
|
||||
diff --git a/tools/settings.py b/tools/settings.py
|
||||
index 10d6ca0..827e4a9 100644
|
||||
--- a/tools/settings.py
|
||||
+++ b/tools/settings.py
|
||||
@@ -40,6 +40,7 @@ PORTS_SETTINGS = {
|
||||
'USE_SDL_NET',
|
||||
'USE_SDL_GFX',
|
||||
'USE_LIBJPEG',
|
||||
+ 'USE_LIBLZMA',
|
||||
'USE_OGG',
|
||||
'USE_REGAL',
|
||||
'USE_BOOST_HEADERS',
|
||||
--
|
||||
2.34.1
|
||||
@@ -1,8 +1,8 @@
|
||||
Module.arguments.push('-d1');
|
||||
Module.arguments.push('-mnull', '-snull', '-vsdl');
|
||||
Module['websocket'] = { url: function(host, port, proto) {
|
||||
/* openttd.org hosts a WebSocket proxy for the content service. */
|
||||
if (host == "content.openttd.org" && port == 3978 && proto == "tcp") {
|
||||
return "wss://content.openttd.org/";
|
||||
return "wss://bananas-server.openttd.org/";
|
||||
}
|
||||
|
||||
/* Everything else just tries to make a default WebSocket connection.
|
||||
@@ -21,52 +21,56 @@ Module['websocket'] = { url: function(host, port, proto) {
|
||||
} };
|
||||
|
||||
Module.preRun.push(function() {
|
||||
const personal_dir = '/home/web_user/.local/share/openttd';
|
||||
const content_download_dir = personal_dir + '/content_download'
|
||||
personal_dir = '/home/web_user/.openttd';
|
||||
content_download_dir = personal_dir + '/content_download'
|
||||
|
||||
/* Because of the "-c" above, all user-data is stored in /user_data. */
|
||||
FS.mount(IDBFS, {}, '/home/web_user');
|
||||
FS.mkdir(personal_dir);
|
||||
FS.mount(IDBFS, {}, personal_dir);
|
||||
|
||||
Module.addRunDependency('syncfs');
|
||||
FS.syncfs(true, function (err) {
|
||||
/* FS.mkdir() tends to fail if parent folders do not exist. */
|
||||
if (!FS.analyzePath(personal_dir).exists) {
|
||||
FS.mkdir('/home/web_user/.local');
|
||||
FS.mkdir('/home/web_user/.local/share');
|
||||
FS.mkdir(personal_dir);
|
||||
}
|
||||
if (!FS.analyzePath(content_download_dir).exists) {
|
||||
FS.mkdir(content_download_dir);
|
||||
}
|
||||
if (!FS.analyzePath(content_download_dir + '/baseset').exists) {
|
||||
FS.mkdir(content_download_dir + '/baseset');
|
||||
}
|
||||
|
||||
/* Check if the OpenGFX baseset is already downloaded. */
|
||||
if (false && !FS.analyzePath(content_download_dir + '/baseset/opengfx-0.6.0.tar').exists) {
|
||||
window.openttd_downloaded_opengfx = true;
|
||||
FS.createPreloadedFile(content_download_dir + '/baseset', 'opengfx-0.6.0.tar', 'https://installer.cdn.openttd.org/emscripten/opengfx-0.6.0.tar', true, true);
|
||||
} else {
|
||||
/* Fake dependency increase, so the counter is stable. */
|
||||
Module.addRunDependency('opengfx');
|
||||
Module.removeRunDependency('opengfx');
|
||||
}
|
||||
|
||||
Module.removeRunDependency('syncfs');
|
||||
});
|
||||
|
||||
window.openttd_syncfs_shown_warning = false;
|
||||
window.openttd_syncfs = function() {
|
||||
window.openttd_syncfs = function(callback) {
|
||||
/* Copy the virtual FS to the persistent storage. */
|
||||
FS.syncfs(false, function (err) { });
|
||||
FS.syncfs(false, function (err) {
|
||||
/* On first time, warn the user about the volatile behaviour of
|
||||
* persistent storage. */
|
||||
if (!window.openttd_syncfs_shown_warning) {
|
||||
window.openttd_syncfs_shown_warning = true;
|
||||
Module.onWarningFs();
|
||||
}
|
||||
|
||||
if (callback) callback();
|
||||
});
|
||||
}
|
||||
|
||||
window.openttd_exit = function() {
|
||||
Module.onExit();
|
||||
window.openttd_syncfs(Module.onExit);
|
||||
}
|
||||
|
||||
window.openttd_abort = function() {
|
||||
Module.onAbort();
|
||||
window.openttd_syncfs(Module.onAbort);
|
||||
}
|
||||
|
||||
window.openttd_bootstrap = function(current, total) {
|
||||
Module.onBootstrap(current, total);
|
||||
}
|
||||
|
||||
window.openttd_bootstrap_failed = function() {
|
||||
Module.onBootstrapFailed();
|
||||
}
|
||||
|
||||
window.openttd_bootstrap_reload = function() {
|
||||
window.openttd_syncfs(function() {
|
||||
Module.onBootstrapReload();
|
||||
setTimeout(function() {
|
||||
location.reload();
|
||||
}, 1000);
|
||||
});
|
||||
}
|
||||
|
||||
window.openttd_server_list = function() {
|
||||
@@ -120,11 +124,3 @@ Module.preRun.push(function() {
|
||||
return ret;
|
||||
}
|
||||
});
|
||||
|
||||
Module.postRun.push(function() {
|
||||
/* Check if we downloaded OpenGFX; if so, sync the virtual FS back to the
|
||||
* IDBFS so OpenGFX is stored persistent. */
|
||||
if (window['openttd_downloaded_opengfx']) {
|
||||
FS.syncfs(false, function (err) { });
|
||||
}
|
||||
});
|
||||
|
||||
@@ -53,7 +53,6 @@
|
||||
}
|
||||
#message {
|
||||
color: #101010;
|
||||
height: 54px;
|
||||
padding: 4px 4px;
|
||||
}
|
||||
|
||||
@@ -142,6 +141,8 @@
|
||||
})(),
|
||||
|
||||
setStatus: function(text) {
|
||||
if (document.getElementById("canvas").style.display == "none") return;
|
||||
|
||||
var m = text.match(/^([^(]+)\((\d+(\.\d+)?)\/(\d+)\)$/);
|
||||
|
||||
if (m) {
|
||||
@@ -169,6 +170,27 @@
|
||||
document.getElementById("message").innerHTML = "Preparing game ...";
|
||||
},
|
||||
|
||||
onBootstrap: function(current, total) {
|
||||
document.getElementById("canvas").style.display = "none";
|
||||
|
||||
document.getElementById("title").innerHTML = "Missing base graphics";
|
||||
document.getElementById("message").innerHTML = "OpenTTD is downloading base graphics.<br/><br/>" + current + " / " + total + " bytes downloaded.";
|
||||
},
|
||||
|
||||
onBootstrapFailed: function(current, total) {
|
||||
document.getElementById("canvas").style.display = "none";
|
||||
|
||||
document.getElementById("title").innerHTML = "Missing base graphics";
|
||||
document.getElementById("message").innerHTML = "Failed to download base graphics.<br/>The game cannot start without base graphics.<br/><br/>Please check your Internet connection and/or the console log.<br/>Reload your browser to try again.";
|
||||
},
|
||||
|
||||
onBootstrapReload: function() {
|
||||
document.getElementById("canvas").style.display = "none";
|
||||
|
||||
document.getElementById("title").innerHTML = "Missing base graphics";
|
||||
document.getElementById("message").innerHTML = "Downloading base graphics done.<br/><br/>Your browser will reload to start the game.";
|
||||
},
|
||||
|
||||
onExit: function() {
|
||||
document.getElementById("canvas").style.display = "none";
|
||||
|
||||
|
||||
10
os/linux/shf-compressed.patch
Normal file
10
os/linux/shf-compressed.patch
Normal file
@@ -0,0 +1,10 @@
|
||||
--- a/usr/include/elf.h 2023-12-30 13:46:27.038645199 +0100
|
||||
+++ b/usr/include/elf.h 2023-12-30 13:46:42.278641893 +0100
|
||||
@@ -365,6 +365,7 @@
|
||||
required */
|
||||
#define SHF_GROUP (1 << 9) /* Section is member of a group. */
|
||||
#define SHF_TLS (1 << 10) /* Section hold thread-local data. */
|
||||
+#define SHF_COMPRESSED (1 << 11) /* Section with compressed data. */
|
||||
#define SHF_MASKOS 0x0ff00000 /* OS-specific. */
|
||||
#define SHF_MASKPROC 0xf0000000 /* Processor-specific */
|
||||
#define SHF_ORDERED (1 << 30) /* Special ordering requirement
|
||||
@@ -5,11 +5,8 @@ set -e
|
||||
# If you are building an unofficial branch of OpenTTD, please change the bundle
|
||||
# ID in Info.plist and below.
|
||||
#
|
||||
# This uses `gon' to perform notarization:
|
||||
#
|
||||
# https://github.com/mitchellh/gon
|
||||
#
|
||||
# Follow the setup instructions on the gon site to install.
|
||||
# This uses the Xcode notarytool to perform notarization. You must set up a keychain
|
||||
# profile called "openttd" using the "store-credentials" notarytool command beforehand.
|
||||
#
|
||||
# Before executing this script, you must first configure CMake with at least the following
|
||||
# parameters:
|
||||
@@ -22,19 +19,11 @@ set -e
|
||||
# This will sign the application with your signing certificate, and will enable
|
||||
# the hardened runtime.
|
||||
#
|
||||
# You also need to set your Apple Developer username and password (app-specific password
|
||||
# is recommended) in the AC_USERNAME and AC_PASSWORD environment variables.
|
||||
#
|
||||
# Then, ensuring you're in your build directory and that the "bundles" directory
|
||||
# exists with a .dmg in it (clear out any old DMGs first), run:
|
||||
#
|
||||
# ../os/macosx/notarize.sh
|
||||
|
||||
if [ -z "${AC_USERNAME}" ]; then
|
||||
echo AC_USERNAME not set, skipping notarization.
|
||||
exit 0
|
||||
fi;
|
||||
|
||||
dmg_filename=(bundles/*.dmg)
|
||||
|
||||
if [ "${dmg_filename}" = "bundles/*.dmg" ]; then
|
||||
@@ -43,24 +32,15 @@ if [ "${dmg_filename}" = "bundles/*.dmg" ]; then
|
||||
exit 1
|
||||
fi;
|
||||
|
||||
cat <<EOF > notarize.json
|
||||
{
|
||||
"notarize": [
|
||||
{
|
||||
"path": "${dmg_filename[0]}",
|
||||
"bundle_id": "org.openttd.openttd",
|
||||
"staple": true
|
||||
}
|
||||
]
|
||||
}
|
||||
EOF
|
||||
xcrun notarytool submit ${dmg_filename[0]} --keychain-profile "openttd" --wait
|
||||
|
||||
gon notarize.json
|
||||
# Staple the ticket to the .dmg
|
||||
xcrun stapler staple "${dmg_filename[0]}"
|
||||
|
||||
app_filename=(_CPack_Packages/*/Bundle/openttd-*/OpenTTD.app)
|
||||
|
||||
if [ "${app_filename}" = "_CPack_Packages/*/Bundle/openttd-*/OpenTTD.app" ]; then
|
||||
echo "No .app found in the _CPack_Packages directory, skipping stapling."
|
||||
echo "No .app found in the _CPack_Packages directory, skipping app stapling."
|
||||
exit 0
|
||||
fi;
|
||||
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
rem
|
||||
rem Building language files...
|
||||
rem
|
||||
cd ..
|
||||
strgen\strgen
|
||||
for %%f in (lang\*.txt) do strgen\strgen %%f
|
||||
cd strgen
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
start /n /win openttd.exe -D %1 %2 %3 %4 %5 %6 %7 %8 %9
|
||||
@@ -1,21 +0,0 @@
|
||||
@echo off
|
||||
if "%1" == "" goto err
|
||||
if "%2" == "" goto err
|
||||
|
||||
echo Downloading NoSound...
|
||||
|
||||
%1\wget http://binaries.openttd.org/installer/nosound-NOSOUND_VERSION.7z -O %2/baseset/nosound.7z
|
||||
|
||||
echo Extracting NoSound...
|
||||
|
||||
%1\7za x -y -O%2/baseset %2/baseset/nosound.7z
|
||||
del %1\baseset\nosound.7z /n
|
||||
|
||||
echo NoSound has been installed.
|
||||
goto end
|
||||
|
||||
:err
|
||||
echo This batch file is only intended for use by the OpenTTD installer.
|
||||
echo Please visit www.openttd.org for details on downloading NoSound.
|
||||
|
||||
:end
|
||||
@@ -1,21 +0,0 @@
|
||||
@echo off
|
||||
if "%1" == "" goto err
|
||||
if "%2" == "" goto err
|
||||
|
||||
echo Downloading OpenGFX...
|
||||
|
||||
%1\wget http://binaries.openttd.org/installer/opengfx-OPENGFX_VERSION.7z -O %2/baseset/opengfx.7z
|
||||
|
||||
echo Extracting OpenGFX...
|
||||
|
||||
%1\7za x -y -O%2/baseset %2/baseset/opengfx.7z
|
||||
del %1\baseset\opengfx.7z /n
|
||||
|
||||
echo OpenGFX has been installed.
|
||||
goto end
|
||||
|
||||
:err
|
||||
echo This batch file is only intended for use by the OpenTTD installer.
|
||||
echo Please visit www.openttd.org for details on downloading OpenGFX.
|
||||
|
||||
:end
|
||||
@@ -1,21 +0,0 @@
|
||||
@echo off
|
||||
if "%1" == "" goto err
|
||||
if "%2" == "" goto err
|
||||
|
||||
echo Downloading OpenSFX...
|
||||
|
||||
%1\wget http://binaries.openttd.org/installer/opensfx-OPENSFX_VERSION.7z -O %2/baseset/opensfx.7z
|
||||
|
||||
echo Extracting OpenSFX...
|
||||
|
||||
%1\7za x -y -O%2/baseset %2/baseset/opensfx.7z
|
||||
del %1\baseset\opensfx.7z /n
|
||||
|
||||
echo OpenSFX has been installed.
|
||||
goto end
|
||||
|
||||
:err
|
||||
echo This batch file is only intended for use by the OpenTTD installer.
|
||||
echo Please visit www.openttd.org for details on downloading OpenSFX.
|
||||
|
||||
:end
|
||||
@@ -1,85 +0,0 @@
|
||||
@echo off
|
||||
|
||||
set OPENTTD_VERSION=1.11.0
|
||||
set OPENSFX_VERSION=0.8.0
|
||||
set NOSOUND_VERSION=0.8.0
|
||||
set OPENGFX_VERSION=1.2.0
|
||||
|
||||
echo To make the installer, you must have the WarpIN compiler (wic) installed and in
|
||||
echo your path, as well as wget and unzip. This file will download the various DLLs
|
||||
echo to be distributed with the installer. If you do not want to continue, please
|
||||
echo press CTRL-C now.
|
||||
echo.
|
||||
pause
|
||||
|
||||
cd ..\..\..\bundle
|
||||
|
||||
if not exist SDL12.dll goto getsdl
|
||||
if not exist FSLib.dll goto getsdl
|
||||
goto libc
|
||||
|
||||
:getsdl
|
||||
|
||||
wget http://www.os2site.com/sw/dev/sdl/sdl-1.2.10-bin-20080804.zip -O dl.zip
|
||||
unzip -j dl.zip SDL/FSLib.dll SDL/SDL12.dll
|
||||
del dl.zip
|
||||
|
||||
:libc
|
||||
|
||||
if exist libc063.dll goto gcc
|
||||
|
||||
wget ftp://ftp.netlabs.org/pub/gcc/libc-0.6.3-csd3.zip -O dl.zip
|
||||
unzip -j dl.zip libc063.dll
|
||||
del dl.zip
|
||||
|
||||
:gcc
|
||||
|
||||
if exist gcc442.dll goto tools
|
||||
|
||||
wget http://www.owenrudge.net/various/gcc442.zip -O dl.zip
|
||||
unzip -j dl.zip gcc442.dll
|
||||
del dl.zip
|
||||
|
||||
:tools
|
||||
|
||||
cd ..\os\os2\installer
|
||||
if exist tools goto opengfx
|
||||
|
||||
mkdir tools
|
||||
cd tools
|
||||
|
||||
wget http://download.smedley.info/wget-1.11.4-os2-20090315.zip -O dl.zip
|
||||
unzip -j dl.zip wget/bin/wget.exe
|
||||
del dl.zip
|
||||
|
||||
wget ftp://ftp.os4.su/moveton/p7zip-9.04-bin-os2.zip -O dl.zip
|
||||
unzip -j dl.zip bin/7za.exe dll/ilibca.dll
|
||||
del dl.zip
|
||||
|
||||
cd ..
|
||||
|
||||
:opengfx
|
||||
|
||||
if exist opengfx goto opensfx
|
||||
|
||||
mkdir opengfx
|
||||
sed s/OPENGFX_VERSION/%OPENGFX_VERSION%/ < download_opengfx.cmd > opengfx\download_opengfx.cmd
|
||||
copy remove_opengfx.cmd opengfx
|
||||
|
||||
:opensfx
|
||||
if exist opensfx goto nosound
|
||||
|
||||
mkdir opensfx
|
||||
sed s/OPENSFX_VERSION/%OPENSFX_VERSION%/ < download_opensfx.cmd > opensfx\download_opensfx.cmd
|
||||
copy remove_opensfx.cmd opensfx
|
||||
|
||||
:nosound
|
||||
|
||||
mkdir nosound
|
||||
sed s/NOSOUND_VERSION/%NOSOUND_VERSION%/ < download_nosound.cmd > nosound\download_nosound.cmd
|
||||
copy remove_nosound.cmd nosound
|
||||
|
||||
:end
|
||||
|
||||
if exist openttd-%OPENTTD_VERSION%-os2.exe del openttd-%OPENTTD_VERSION%-os2.exe
|
||||
wic -a openttd-%OPENTTD_VERSION%-os2.exe 1 -c../../../bundle -r * 2 -ctools -r * 3 -copengfx -r * 4 -copensfx -r * 5 -cnosound -r * -U -s openttd.wis
|
||||
@@ -1,106 +0,0 @@
|
||||
<WARPIN>
|
||||
<HEAD>
|
||||
<TITLE>OpenTTD</TITLE>
|
||||
|
||||
<!-- Please remember to increment the build number for each package
|
||||
when releasing a new stable version, particularly if there are
|
||||
also release candidates sharing the major/minor versions:
|
||||
|
||||
e.g., 0\7\1\16279 for 0.7.1-RC1,
|
||||
0\7\1\16365 for 0.7.1-RC2,
|
||||
0\7\1\16540 for 0.7.1 final
|
||||
-->
|
||||
|
||||
<PCK INDEX="1"
|
||||
PACKAGEID="OpenTTD\OpenTTD\OpenTTD\1\0\0\18862"
|
||||
TARGET="$(WARPIN_DEFAULTAPPSPATH)\OpenTTD"
|
||||
SELECT
|
||||
TITLE="OpenTTD"
|
||||
LONGFILENAMES
|
||||
BASE
|
||||
>OpenTTD is an open source transport simulation game</PCK>
|
||||
|
||||
<PCK INDEX="2"
|
||||
PACKAGEID="OpenTTD\OpenTTD\Downloader\1\0\0\18862"
|
||||
TARGET="$(WARPIN_DEFAULTAPPSPATH)\OpenTTD"
|
||||
SELECT
|
||||
TITLE="Download tools"
|
||||
REQUIRES=1
|
||||
FIXED
|
||||
>Tools required for downloading the OpenGFX/SFX packs</PCK>
|
||||
|
||||
<PCK INDEX="3"
|
||||
PACKAGEID="OpenTTD\OpenTTD\OpenGFX\1\0\0\18862"
|
||||
TARGET="$(WARPIN_DEFAULTAPPSPATH)\OpenTTD"
|
||||
SELECT
|
||||
TITLE="OpenGFX"
|
||||
LONGFILENAMES
|
||||
REQUIRES=2
|
||||
EXECUTE="$(3)\download_opengfx.cmd | $(1) $(/1)"
|
||||
DEEXECUTE="$(3)\remove_opengfx.cmd | $(1) $(/1)"
|
||||
FIXED
|
||||
>Downloads the OpenGFX graphics pack for OpenTTD</PCK>
|
||||
|
||||
<PCK INDEX="4"
|
||||
PACKAGEID="OpenTTD\OpenTTD\OpenSFX\1\0\0\18862"
|
||||
TARGET="$(WARPIN_DEFAULTAPPSPATH)\OpenTTD"
|
||||
SELECT
|
||||
TITLE="OpenSFX"
|
||||
LONGFILENAMES
|
||||
REQUIRES=2
|
||||
EXECUTE="$(4)\download_opensfx.cmd | $(1) $(/1)"
|
||||
DEEXECUTE="$(4)\remove_opensfx.cmd | $(1) $(/1)"
|
||||
FIXED
|
||||
>Downloads the OpenSFX sound effects pack for OpenTTD</PCK>
|
||||
|
||||
<PCK INDEX="5"
|
||||
PACKAGEID="OpenTTD\OpenTTD\NoSound\1\0\0\18862"
|
||||
TARGET="$(WARPIN_DEFAULTAPPSPATH)\OpenTTD"
|
||||
SELECT
|
||||
TITLE="NoSound"
|
||||
LONGFILENAMES
|
||||
REQUIRES=2
|
||||
EXECUTE="$(5)\download_nosound.cmd | $(1) $(/1)"
|
||||
DEEXECUTE="$(5)\remove_nosound.cmd | $(1) $(/1)"
|
||||
FIXED
|
||||
>Downloads the NoSound pack for OpenTTD, to disable sound effects</PCK>
|
||||
|
||||
</HEAD>
|
||||
|
||||
<BODY>
|
||||
<!-- page 1: introductory page -->
|
||||
<PAGE INDEX="1" TYPE="README">
|
||||
<NEXTBUTTON TARGET=2>~Next</NEXTBUTTON>
|
||||
<README EXTRACTFROMPCK="1">README.md</README>
|
||||
<TEXT>Welcome to the OpenTTD installer. This program will install OpenTTD 1.0 on your system. Before we begin the installation process, please take a moment to read the following document.
|
||||
|
||||
Select "Next" to continue, or "Cancel" to abort installation.</TEXT>
|
||||
</PAGE>
|
||||
|
||||
<!-- page 2: licence page -->
|
||||
<PAGE INDEX="2" TYPE="README">
|
||||
<NEXTBUTTON TARGET=3>~Next</NEXTBUTTON>
|
||||
<README EXTRACTFROMPCK="1">COPYING.md</README>
|
||||
<TEXT>OpenTTD is licenced under the GNU General Public License. The text of the licence is below.
|
||||
|
||||
Select "Next" if you agree to this licence.
|
||||
Select "Cancel" to abort installation.</TEXT>
|
||||
</PAGE>
|
||||
|
||||
<!-- The TYPE=CONTAINER will list the packages which can be installed. -->
|
||||
<PAGE INDEX="3" TYPE="CONTAINER">
|
||||
<NEXTBUTTON TARGET="4">~Next</NEXTBUTTON>
|
||||
<TEXT>On this page, you may choose which components to install. If you don't own Transport Tycoon Deluxe, you will need to download OpenGFX (3MiB) and OpenSFX (10MiB).</TEXT>
|
||||
</PAGE>
|
||||
|
||||
<!-- Display another TEXT page to inform the user
|
||||
that installation will begin. We use the TARGET=0
|
||||
with the NEXTBUTTON tag which starts installation. -->
|
||||
|
||||
<PAGE INDEX="4" TYPE="TEXT">
|
||||
<NEXTBUTTON TARGET="0">I~nstall</NEXTBUTTON>
|
||||
<TEXT>
|
||||
Press "Install" to begin installing OpenTTD.</TEXT>
|
||||
</PAGE>
|
||||
</BODY>
|
||||
</WARPIN>
|
||||
@@ -1,15 +0,0 @@
|
||||
@echo off
|
||||
if "%1" == "" goto err
|
||||
|
||||
echo Removing NoSound...
|
||||
|
||||
del %1\baseset\nosound\*.* /n
|
||||
rmdir %1\baseset\nosound
|
||||
|
||||
echo NoSound has been removed.
|
||||
goto end
|
||||
|
||||
:err
|
||||
echo This batch file is only intended for use by the OpenTTD installer.
|
||||
|
||||
:end
|
||||
@@ -1,15 +0,0 @@
|
||||
@echo off
|
||||
if "%1" == "" goto err
|
||||
|
||||
echo Removing OpenGFX...
|
||||
|
||||
del %1\baseset\opengfx\*.* /n
|
||||
rmdir %1\baseset\opengfx
|
||||
|
||||
echo OpenGFX has been removed.
|
||||
goto end
|
||||
|
||||
:err
|
||||
echo This batch file is only intended for use by the OpenTTD installer.
|
||||
|
||||
:end
|
||||
@@ -1,15 +0,0 @@
|
||||
@echo off
|
||||
if "%1" == "" goto err
|
||||
|
||||
echo Removing OpenSFX...
|
||||
|
||||
del %1\baseset\opensfx\*.* /n
|
||||
rmdir %1\baseset\opensfx
|
||||
|
||||
echo OpenSFX has been removed.
|
||||
goto end
|
||||
|
||||
:err
|
||||
echo This batch file is only intended for use by the OpenTTD installer.
|
||||
|
||||
:end
|
||||
@@ -1,64 +0,0 @@
|
||||
40
|
||||
projectIdent
|
||||
0
|
||||
VpeMain
|
||||
1
|
||||
WRect
|
||||
0
|
||||
0
|
||||
10304
|
||||
10020
|
||||
2
|
||||
MProject
|
||||
3
|
||||
MCommand
|
||||
15
|
||||
svn_version.cmd
|
||||
4
|
||||
MCommand
|
||||
0
|
||||
2
|
||||
5
|
||||
WFileName
|
||||
17
|
||||
..\..\openttd.tgt
|
||||
6
|
||||
WFileName
|
||||
23
|
||||
..\..\strgen\strgen.tgt
|
||||
7
|
||||
WVList
|
||||
2
|
||||
8
|
||||
VComponent
|
||||
9
|
||||
WRect
|
||||
0
|
||||
0
|
||||
5696
|
||||
4240
|
||||
0
|
||||
0
|
||||
10
|
||||
WFileName
|
||||
17
|
||||
..\..\openttd.tgt
|
||||
0
|
||||
0
|
||||
11
|
||||
VComponent
|
||||
12
|
||||
WRect
|
||||
688
|
||||
680
|
||||
5696
|
||||
4240
|
||||
0
|
||||
0
|
||||
13
|
||||
WFileName
|
||||
23
|
||||
..\..\strgen\strgen.tgt
|
||||
0
|
||||
1
|
||||
8
|
||||
@@ -1,30 +0,0 @@
|
||||
@echo off
|
||||
echo Running SVN version detection script...
|
||||
rem
|
||||
rem Requires subversion (`svnversion') to be installed
|
||||
rem
|
||||
cd ..\..
|
||||
if not "%RELEASE%"=="" goto forcerelease
|
||||
if not exist .svn goto nosvn
|
||||
svnversion -n . > os\os2\svnver.tmp
|
||||
if not "%ERRORLEVEL%"=="0" goto nosvn
|
||||
|
||||
copy os\os2\svnver1.c+os\os2\svnver.tmp+os\os2\svnver2.c rev.c /a /y > nul 2> nul
|
||||
goto end
|
||||
|
||||
:forcerelease
|
||||
echo Forcing release string "%RELEASE%"...
|
||||
echo const char _openttd_revision[] = "%RELEASE%"; > rev.c
|
||||
echo const int _revision_number = 0; >> rev.c
|
||||
goto end
|
||||
|
||||
:nosvn
|
||||
echo Error executing `svnversion' or no SVN data detected
|
||||
echo const char _openttd_revision[] = "norev000"; > rev.c
|
||||
echo const int _revision_number = 0; >> rev.c
|
||||
goto end
|
||||
|
||||
:end
|
||||
cd os\os2
|
||||
del svnver.tmp > nul 2> nul
|
||||
rem end
|
||||
@@ -1,3 +0,0 @@
|
||||
/* rev.c part #1 for OS/2 - ensure no newline at end of file! */
|
||||
|
||||
const char _openttd_revision[] = "r
|
||||
@@ -1,4 +0,0 @@
|
||||
";
|
||||
const int _revision_number = 0;
|
||||
|
||||
/* rev.c part 2 for OS/2 - ensure no newline at start of file! */
|
||||
@@ -15,8 +15,6 @@
|
||||
</application>
|
||||
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
|
||||
<application>
|
||||
<!--This Id value indicates the application supports Windows Vista functionality -->
|
||||
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
|
||||
<!--This Id value indicates the application supports Windows 7 functionality-->
|
||||
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
|
||||
<!--This Id value indicates the application supports Windows 8 functionality-->
|
||||
|
||||
@@ -45,4 +45,4 @@ ResizeImage $logoPath 1240 600 "assets\Wide310x150Logo.png"
|
||||
|
||||
# Copy the logo for the store for the common package
|
||||
New-Item -Path "." -Name "assets-common" -ItemType "directory" -Force
|
||||
Copy-Item "assets\StoreLogo.png" -Destination "assets-common\StoreLogo.png"
|
||||
Copy-Item "assets\StoreLogo.png" -Destination "assets-common\StoreLogoCommon.png"
|
||||
|
||||
Reference in New Issue
Block a user