upgrade build scripts for x64 deployment

This commit is contained in:
Akash Mozumdar 2019-05-27 14:13:12 -04:00
parent c7edfef9ad
commit a38cbe2769
4 changed files with 55 additions and 102 deletions

View File

@ -9,6 +9,7 @@ add_compile_options(
/std:c++17 /std:c++17
/MP /MP
/wd4018 # signed/unsigned mismatch /wd4018 # signed/unsigned mismatch
/DVERSION="${VERSION}"
/DUNICODE # config.pri /DUNICODE # config.pri
/D_UNICODE /D_UNICODE
) )

View File

@ -14,47 +14,43 @@ foreach ($language in @{
TURKISH="Türkçe"; TURKISH="Türkçe";
}.GetEnumerator()) }.GetEnumerator())
{ {
$folder = "Textractor-$($language.Value)-$($version)"; $folder = "Textractor-$($language.Value)-$version";
mkdir -Force -Verbose $folder; mkdir -Force -Verbose $folder;
rm -Force -Recurse -Verbose "$($folder)/*"; rm -Force -Recurse -Verbose "$folder/*";
$files = @( foreach ($arch in @("x86", "x64"))
"Textractor.exe",
"TextractorCLI.exe",
"texthook.dll",
"Qt5Core.dll",
"Qt5Gui.dll",
"Qt5Widgets.dll",
"LoaderDll.dll",
"LocaleEmulator.dll",
"Bing Translate.dll",
"Copy to Clipboard.dll",
"Extra Newlines.dll",
"Extra Window.dll",
"Google Translate.dll",
"Lua.dll",
"Regex Filter.dll",
"Remove Repetition.dll",
"Replacer.dll",
"Thread Linker.dll",
"platforms",
"styles"
);
cd "x86";
cmake -G "Visual Studio 15 2017" -DTEXT_LANGUAGE="$($language.Key)" -DCMAKE_BUILD_TYPE="Release" ../..;
&"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\devenv" Textractor.sln /build "Release|Win32";
cd ..;
foreach ($file in $files)
{ {
copy -Force -Recurse -Verbose -Destination $folder -Path "Release_x86/$($file)"; cd $arch;
} $cmakeArch = if ($arch -eq "x86") {""} else {" Win64"};
cd "x64"; $vsArch = if ($arch -eq "x86") {"Win32"} else {"x64"};
cmake -G "Visual Studio 15 2017 Win64" -DTEXT_LANGUAGE="$($language.Key)" -DCMAKE_BUILD_TYPE="Release" ../..; cmake -G "Visual Studio 15 2017$cmakeArch" -DVERSION="$version" -DTEXT_LANGUAGE="$($language.Key)" -DCMAKE_BUILD_TYPE="Release" ../..;
&"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\devenv" Textractor.sln /build "Release|x64"; &"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\devenv" Textractor.sln /build "Release|$vsArch";
cd ..; cd ..;
mkdir -Force -Verbose "$($folder)/x64"; mkdir -Force -Verbose "$folder/$arch";
foreach ($file in $files) foreach ($file in @(
{ "Textractor.exe",
copy -Force -Recurse -Verbose -Destination "$($folder)/x64" -Path "Release_x64/$($file)"; "TextractorCLI.exe",
"texthook.dll",
"Qt5Core.dll",
"Qt5Gui.dll",
"Qt5Widgets.dll",
"LoaderDll.dll",
"LocaleEmulator.dll",
"Bing Translate.dll",
"Copy to Clipboard.dll",
"Extra Newlines.dll",
"Extra Window.dll",
"Google Translate.dll",
"Lua.dll",
"Regex Filter.dll",
"Remove Repetition.dll",
"Replacer.dll",
"Thread Linker.dll",
"platforms",
"styles"
))
{
copy -Force -Recurse -Verbose -Destination "$folder/$arch" -Path "Release_$arch/$file";
}
} }
} }

View File

@ -30,6 +30,5 @@ constexpr auto CONFIG_FILE = u8"Textractor.ini";
constexpr auto DEFAULT_EXTENSIONS = u8"Remove Repetition>Lua>Copy to Clipboard>Bing Translate>Extra Window>Extra Newlines"; constexpr auto DEFAULT_EXTENSIONS = u8"Remove Repetition>Lua>Copy to Clipboard>Bing Translate>Extra Window>Extra Newlines";
constexpr auto WINDOW = u8"Window"; constexpr auto WINDOW = u8"Window";
#define CURRENT_VERSION "3.0.1"
// EOF // EOF

View File

@ -1,5 +1,11 @@
#include "defs.h" #include "defs.h"
#ifdef _WIN64
#define ARCH "x64"
#else
#define ARCH "x86"
#endif
const char* ATTACH = u8"Attach to game"; const char* ATTACH = u8"Attach to game";
const char* LAUNCH = u8"Launch game"; const char* LAUNCH = u8"Launch game";
const char* DETACH = u8"Detach from game"; const char* DETACH = u8"Detach from game";
@ -20,13 +26,13 @@ R{S|Q|V}[null_length<][codepage#][*deref_offset]@addr
OR OR
Enter hook code Enter hook code
H{A|B|W|S|Q|V}[null_length<][N][codepage#]data_offset[*deref_offset1][:split_offset[*deref_offset2]]@addr[:module[:func]] H{A|B|W|S|Q|V}[null_length<][N][codepage#]data_offset[*deref_offset1][:split_offset[*deref_offset2]]@addr[:module[:func]]
All numbers except codepage in hexadecimal All numbers except codepage/null_length in hexadecimal
Default codepage is 932 (Shift-JIS) but this can be changed in settings Default codepage is 932 (Shift-JIS) but this can be changed in settings
A/B: codepage char little/big endian A/B: codepage char little/big endian
W: UTF-16 char W: UTF-16 char
S/Q/V: codepage/UTF-16/UTF-8 string S/Q/V: codepage/UTF-16/UTF-8 string
null_length: length of null terminator used for string null_length: length of null terminator used for string
Negatives for data/split offset refer to registers Negatives for data_offset/split_offset refer to registers
-4 for EAX, -8 for ECX, -C for EDX, -10 for EBX, -14 for ESP, -18 for EBP, -1C for ESI, -20 for EDI -4 for EAX, -8 for ECX, -C for EDX, -10 for EBX, -14 for ESP, -18 for EBP, -1C for ESI, -20 for EDI
-4 for RAX, -C for RBX, -14 for RCX, -1C for RDX, and so on for RSP, RBP, RSI, RDI, R8-R15 -4 for RAX, -C for RBX, -14 for RCX, -1C for RDX, and so on for RSP, RBP, RSI, RDI, R8-R15
* means dereference pointer+deref_offset)"; * means dereference pointer+deref_offset)";
@ -42,7 +48,7 @@ const char* FLUSH_DELAY = u8"Flush Delay";
const char* MAX_BUFFER_SIZE = u8"Max Buffer Size"; const char* MAX_BUFFER_SIZE = u8"Max Buffer Size";
const wchar_t* CONSOLE = L"Console"; const wchar_t* CONSOLE = L"Console";
const wchar_t* CLIPBOARD = L"Clipboard"; const wchar_t* CLIPBOARD = L"Clipboard";
const wchar_t* ABOUT = L"Textractor v" CURRENT_VERSION LR"( made by me: Artikash (email: akashmozumdar@gmail.com) const wchar_t* ABOUT = L"Textractor " ARCH L" v" VERSION LR"( made by me: Artikash (email: akashmozumdar@gmail.com)
Project homepage: https://github.com/Artikash/Textractor Project homepage: https://github.com/Artikash/Textractor
Tutorial video: https://www.youtube.com/watch?v=eecEOacF6mw Tutorial video: https://www.youtube.com/watch?v=eecEOacF6mw
Please contact me with any problems, feature requests, or questions relating to Textractor Please contact me with any problems, feature requests, or questions relating to Textractor
@ -53,8 +59,8 @@ If you like this project, please tell everyone about it :))";
const wchar_t* CL_OPTIONS = LR"(usage: Textractor [-p{process id|"process name"}]...)"; const wchar_t* CL_OPTIONS = LR"(usage: Textractor [-p{process id|"process name"}]...)";
const wchar_t* UPDATE_AVAILABLE = L"Update available: download it from https://github.com/Artikash/Textractor/releases"; const wchar_t* UPDATE_AVAILABLE = L"Update available: download it from https://github.com/Artikash/Textractor/releases";
const wchar_t* ALREADY_INJECTED = L"Textractor: already injected"; const wchar_t* ALREADY_INJECTED = L"Textractor: already injected";
const wchar_t* NEED_32_BIT = L"Textractor: architecture mismatch: try x86 Textractor instead"; const wchar_t* NEED_32_BIT = L"Textractor: architecture mismatch: only Textractor x86 can inject this process";
const wchar_t* NEED_64_BIT = L"Textractor: architecture mismatch: try x64 Textractor instead"; const wchar_t* NEED_64_BIT = L"Textractor: architecture mismatch: only Textractor x64 can inject this process";
const wchar_t* INJECT_FAILED = L"Textractor: couldn't inject"; const wchar_t* INJECT_FAILED = L"Textractor: couldn't inject";
const wchar_t* LAUNCH_FAILED = L"Textractor: couldn't launch"; const wchar_t* LAUNCH_FAILED = L"Textractor: couldn't launch";
const wchar_t* INVALID_CODE = L"Textractor: invalid code"; const wchar_t* INVALID_CODE = L"Textractor: invalid code";
@ -72,7 +78,7 @@ const char* SEND_ERROR = u8"Textractor: Send ERROR (likely an incorrect H-code)"
const char* READ_ERROR = u8"Textractor: Reader ERROR (likely an incorrect R-code)"; const char* READ_ERROR = u8"Textractor: Reader ERROR (likely an incorrect R-code)";
const char* HIJACK_ERROR = u8"Textractor: Hijack ERROR"; const char* HIJACK_ERROR = u8"Textractor: Hijack ERROR";
const char* COULD_NOT_FIND = u8"Textractor: could not find text"; const char* COULD_NOT_FIND = u8"Textractor: could not find text";
const char* SELECT_LANGUAGE = u8"Select Language"; const char* SELECT_LANGUAGE = u8"Select language";
const char* BING_PROMPT = u8"What language should Bing translate to?"; const char* BING_PROMPT = u8"What language should Bing translate to?";
const char* GOOGLE_PROMPT = u8"What language should Google translate to?"; const char* GOOGLE_PROMPT = u8"What language should Google translate to?";
const wchar_t* TOO_MANY_TRANS_REQUESTS = L"Too many translation requests: refuse to make more"; const wchar_t* TOO_MANY_TRANS_REQUESTS = L"Too many translation requests: refuse to make more";
@ -129,12 +135,12 @@ inline auto _ = []
SAVE_HOOKS = u8"Kancaları kaydet"; SAVE_HOOKS = u8"Kancaları kaydet";
SETTINGS = u8"Ayarlar"; SETTINGS = u8"Ayarlar";
EXTENSIONS = u8"Uzantılar"; EXTENSIONS = u8"Uzantılar";
SELECT_PROCESS = u8"İşlem Seçin"; SELECT_PROCESS = u8"İşlem seçin";
ATTACH_INFO = u8"Bağlanmak istediğiniz işlemi görmüyorsanız yönetici olarak çalıştırmayı deneyin"; ATTACH_INFO = u8"Bağlanmak istediğiniz işlemi görmüyorsanız yönetici olarak çalıştırmayı deneyin";
DEFAULT_CODEPAGE = u8"Varsayılan Kod Sayfası"; DEFAULT_CODEPAGE = u8"Varsayılan Kod Sayfası";
FLUSH_DELAY = u8"Temizleme Gecikmesi"; FLUSH_DELAY = u8"Temizleme Gecikmesi";
MAX_BUFFER_SIZE = u8"Maksimum Arabellek Boyu"; MAX_BUFFER_SIZE = u8"Maksimum Arabellek Boyu";
ABOUT = L"Textractor v" CURRENT_VERSION LR"( (proje ana sayfası: https://github.com/Artikash/Textractor) ABOUT = L"Textractor " ARCH L" v" VERSION LR"( (proje ana sayfası: https://github.com/Artikash/Textractor)
Benim tarafımdan yapıldı: Artikash (e-posta: akashmozumdar@gmail.com) Benim tarafımdan yapıldı: Artikash (e-posta: akashmozumdar@gmail.com)
Textractor ile ilgili tüm sorunlarınız, istekleriniz ve sorularınız için lütfen benimle iletişime geçin Textractor ile ilgili tüm sorunlarınız, istekleriniz ve sorularınız için lütfen benimle iletişime geçin
Benimle, proje ana sayfasından (issues kısmından) ya da e-posta aracılığıyla iletişime geçebilirsiniz Benimle, proje ana sayfasından (issues kısmından) ya da e-posta aracılığıyla iletişime geçebilirsiniz
@ -169,22 +175,6 @@ Kaynak kodu GKLv3 koruması altında proje ana sayfasında mevcut
También puedes escribir la ID del proceso)"; También puedes escribir la ID del proceso)";
SEARCH_GAME = u8"Seleccionar desde computadora"; SEARCH_GAME = u8"Seleccionar desde computadora";
PROCESSES = u8"Procesos (*.exe)"; PROCESSES = u8"Procesos (*.exe)";
CODE_INFODUMP = u8R"(Buscar texto
S[codepage#]texto
O
Ingresar código de lectura
R{S|Q|V}[codepage#][*deref_offset]@addr
O
Ingresar hook code (H-code)
H{A|B|W|S|Q|V}[N][codepage#]data_offset[*deref_offset1][:split_offset[*deref_offset2]]@addr[:module[:func]]
Todos los números excepto codepage en hexedécimal
Codepage por defecto es 932 (Shift-JIS) pero se puede cambiar en opciones
A/B: codepage char little/big endian
W: UTF-16 char
S/Q/V: codepage/UTF-16/UTF-8 string
Negatives for data/split offset refer to registers
-4 for EAX, -8 for ECX, -C for EDX, -10 for EBX, -14 for ESP, -18 for EBP, -1C for ESI, -20 for EDI
* means dereference pointer+deref_offset)";
SAVE_SETTINGS = u8"Guardar opciones"; SAVE_SETTINGS = u8"Guardar opciones";
EXTEN_WINDOW_INSTRUCTIONS = u8R"(Arrrastra y suelta la extension (.dll) aquí desde tu computadora para añadirlos EXTEN_WINDOW_INSTRUCTIONS = u8R"(Arrrastra y suelta la extension (.dll) aquí desde tu computadora para añadirlos
Arrastra y suelta la lista para reordenar Arrastra y suelta la lista para reordenar
@ -195,7 +185,7 @@ Presiona supr en una extension seleccionada para removerla)";
MAX_BUFFER_SIZE = u8"Max Buffer Size"; MAX_BUFFER_SIZE = u8"Max Buffer Size";
CONSOLE = L"Consola"; CONSOLE = L"Consola";
CLIPBOARD = L"Portapapeles"; CLIPBOARD = L"Portapapeles";
ABOUT = L"Textractor v" CURRENT_VERSION LR"( hecho por mí: Artikash (correo: akashmozumdar@gmail.com) ABOUT = L"Textractor " ARCH L" v" VERSION LR"( hecho por mí: Artikash (correo: akashmozumdar@gmail.com)
Página del proyecto: https://github.com/Artikash/Textractor Página del proyecto: https://github.com/Artikash/Textractor
Video tutorial: https://www.youtube.com/watch?v=eecEOacF6mw Video tutorial: https://www.youtube.com/watch?v=eecEOacF6mw
No dudes en conectarme si tienes algún problema, petición de característica o preguntas relacionadas con Textractor No dudes en conectarme si tienes algún problema, petición de característica o preguntas relacionadas con Textractor
@ -204,7 +194,6 @@ Código fuente disponible bajo GPLv3 en la página del proyecto
Estoy buscando un nuevo trabajo: por favor envíame un correo si estás contratando ingenieros de software de EE.UU.)"; Estoy buscando un nuevo trabajo: por favor envíame un correo si estás contratando ingenieros de software de EE.UU.)";
UPDATE_AVAILABLE = L"Actualización disponible: descárguela en https://github.com/Artikash/Textractor/releases"; UPDATE_AVAILABLE = L"Actualización disponible: descárguela en https://github.com/Artikash/Textractor/releases";
ALREADY_INJECTED = L"Textractor: ya inyectado"; ALREADY_INJECTED = L"Textractor: ya inyectado";
NEED_32_BIT = L"Textractor: architecture mismatch: try 32 bit Textractor instead";
INJECT_FAILED = L"Textractor: no se puede inyectar"; INJECT_FAILED = L"Textractor: no se puede inyectar";
LAUNCH_FAILED = L"Textractor: no se puede iniciar"; LAUNCH_FAILED = L"Textractor: no se puede iniciar";
INVALID_CODE = L"Textractor: código inválido"; INVALID_CODE = L"Textractor: código inválido";
@ -251,22 +240,6 @@ Clic y arrastra los bordes de la ventana para moverla, o en la esquina inferior
ID)"; ID)";
SEARCH_GAME = u8"从计算机中选择"; SEARCH_GAME = u8"从计算机中选择";
PROCESSES = u8"进程 (*.exe)"; PROCESSES = u8"进程 (*.exe)";
CODE_INFODUMP = u8R"(搜索文本
S[codepage#]text
read (R码)
R{S|Q|V}[codepage#][*deref_offset]@addr
hook (H码)
H{A|B|W|S|Q|V}[N][codepage#]data_offset[*deref_offset1][:split_offset[*deref_offset2]]@addr[:module[:func]]
使16
932 (Shift-JIS)
A/B: (little endian) / (big endian)
W: UTF-16
S/Q/V: /UTF-16/UTF-8
(data) / (split)
-4 EAX, -8 ECX, -C EDX, -10 EBX, -14 ESP, -18 EBP, -1C ESI, -20 EDI
* pointer+deref_offset)";
SAVE_SETTINGS = u8"保存设置"; SAVE_SETTINGS = u8"保存设置";
EXTEN_WINDOW_INSTRUCTIONS = u8R"(从计算机拖拽扩展 (.dll) 文件到这里来添加 EXTEN_WINDOW_INSTRUCTIONS = u8R"(从计算机拖拽扩展 (.dll) 文件到这里来添加
(使) (使)
@ -278,7 +251,7 @@ S/Q/V: 代码页/UTF-16/UTF-8 字符串
MAX_BUFFER_SIZE = u8"最大缓冲区长度"; MAX_BUFFER_SIZE = u8"最大缓冲区长度";
CONSOLE = L"控制台"; CONSOLE = L"控制台";
CLIPBOARD = L"剪贴板"; CLIPBOARD = L"剪贴板";
ABOUT = L"Textractor v" CURRENT_VERSION LR"( 作者: Artikash (email: akashmozumdar@gmail.com) ABOUT = L"Textractor " ARCH L" v" VERSION LR"( 作者: Artikash (email: akashmozumdar@gmail.com)
: https://github.com/Artikash/Textractor : https://github.com/Artikash/Textractor
: https://www.youtube.com/watch?v=eecEOacF6mw : https://www.youtube.com/watch?v=eecEOacF6mw
Textractor Textractor
@ -287,7 +260,7 @@ S/Q/V: 代码页/UTF-16/UTF-8 字符串
: )"; : )";
UPDATE_AVAILABLE = L"有可用的更新: 请从 https://github.com/Artikash/Textractor/releases 下载"; UPDATE_AVAILABLE = L"有可用的更新: 请从 https://github.com/Artikash/Textractor/releases 下载";
ALREADY_INJECTED = L"Textractor: 已经注入"; ALREADY_INJECTED = L"Textractor: 已经注入";
NEED_32_BIT = L"Textractor: 架构不匹配: 请尝试使用 32 位的 Textractor"; NEED_32_BIT = L"Textractor: 架构不匹配: 请尝试使用 Textractor x86";
INJECT_FAILED = L"Textractor: 无法注入"; INJECT_FAILED = L"Textractor: 无法注入";
LAUNCH_FAILED = L"Textractor: 无法启动"; LAUNCH_FAILED = L"Textractor: 无法启动";
INVALID_CODE = L"Textractor: 无效代码"; INVALID_CODE = L"Textractor: 无效代码";
@ -334,22 +307,6 @@ S/Q/V: 代码页/UTF-16/UTF-8 字符串
Вы также можете ввести id процесса)"; Вы также можете ввести id процесса)";
SEARCH_GAME = u8"Найти в проводнике"; SEARCH_GAME = u8"Найти в проводнике";
PROCESSES = u8"Процессы (*.exe)"; PROCESSES = u8"Процессы (*.exe)";
CODE_INFODUMP = u8R"(Искать текст
S[codepage#]текст
ИЛИ
Введите код чтения (R-code)
R{S|Q|V}[codepage#][*deref_offset]@addr
ИЛИ
Введите код хука (H-code)
H{A|B|W|S|Q|V}[N][codepage#]data_offset[*deref_offset1][:split_offset[*deref_offset2]]@addr[:module[:func]]
Все числа, кроме кодовой страницы в шестнадцатеричном формате
Кодировка по умолчанию 932 (Shift-JIS), но она может быть изменена в настройках
A/B: codepage char little/big endian
W: UTF-16 char
S/Q/V: codepage/UTF-16/UTF-8 string
Отрицательное для data/split офсетов, ссылающихся на регистры
-4 для EAX, -8 для ECX, -C для EDX, -10 для EBX, -14 для ESP, -18 для EBP, -1C для ESI, -20 для EDI
* значит dereference pointer+deref_offset)";
SAVE_SETTINGS = u8"Сохранить настройки"; SAVE_SETTINGS = u8"Сохранить настройки";
EXTEN_WINDOW_INSTRUCTIONS = u8R"(Перетащите сюда (.dll) файлы расширений из проводника для их добавления EXTEN_WINDOW_INSTRUCTIONS = u8R"(Перетащите сюда (.dll) файлы расширений из проводника для их добавления
(Не работает при запуске от администратора) (Не работает при запуске от администратора)
@ -362,7 +319,7 @@ S/Q/V: codepage/UTF-16/UTF-8 string
MAX_BUFFER_SIZE = u8"Максимальный размер буфера"; MAX_BUFFER_SIZE = u8"Максимальный размер буфера";
CONSOLE = L"Консоль"; CONSOLE = L"Консоль";
CLIPBOARD = L"Буфер обмена"; CLIPBOARD = L"Буфер обмена";
ABOUT = L"Textractor в." CURRENT_VERSION LR"( автор: Artikash (email: akashmozumdar@gmail.com) ABOUT = L"Textractor " ARCH L" в." VERSION LR"( автор: Artikash (email: akashmozumdar@gmail.com)
Домашняя страница: https://github.com/Artikash/Textractor Домашняя страница: https://github.com/Artikash/Textractor
Обучающее видео: https://www.youtube.com/watch?v=eecEOacF6mw Обучающее видео: https://www.youtube.com/watch?v=eecEOacF6mw
Сообщайте о любых проблемах, желаемых для добавления функциях, или задавайте вопросы, касающиеся Textractor Сообщайте о любых проблемах, желаемых для добавления функциях, или задавайте вопросы, касающиеся Textractor
@ -373,7 +330,7 @@ I'm currently looking for a new job: email me if you know anyone hiring US softw
CL_OPTIONS = LR"(usage: Textractor [-p{process id|"process name"}]...)"; CL_OPTIONS = LR"(usage: Textractor [-p{process id|"process name"}]...)";
UPDATE_AVAILABLE = L"Доступно обновление: загрузите его на https://github.com/Artikash/Textractor/releases"; UPDATE_AVAILABLE = L"Доступно обновление: загрузите его на https://github.com/Artikash/Textractor/releases";
ALREADY_INJECTED = L"Textractor: уже присоединен"; ALREADY_INJECTED = L"Textractor: уже присоединен";
NEED_32_BIT = L"Textractor: несоответствие архитектуры: попробуйте 32-битный Textractor вместо этого"; NEED_32_BIT = L"Textractor: несоответствие архитектуры: попробуйте Textractor x86 вместо этого";
INJECT_FAILED = L"Textractor: невозможно присоединиться"; INJECT_FAILED = L"Textractor: невозможно присоединиться";
LAUNCH_FAILED = L"Textractor: невозможно запустить"; LAUNCH_FAILED = L"Textractor: невозможно запустить";
INVALID_CODE = L"Textractor: неверный код"; INVALID_CODE = L"Textractor: неверный код";