1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2025-08-24 19:49:22 +02:00

Омг, я наконец то все собрал

This commit is contained in:
Anton Titovets
2025-03-30 18:37:11 +03:00
parent a0c7454a69
commit 587299f4fb
18 changed files with 242 additions and 106 deletions

View File

@@ -0,0 +1,60 @@
[target.x86_64-unknown-linux-gnu.env]
passthrough = [
"OPENSSL_DIR=/usr/local/ssl", # Корневой каталог OpenSSL
"OPENSSL_LIB_DIR=/usr/local/ssl/lib", # Каталог с библиотеками
"OPENSSL_INCLUDE_DIR=/usr/local/ssl/include", # Каталог с заголовочными файлами
]
[target.x86_64-unknown-linux-gnu]
pre-build = [
"apt-get update",
"apt-get install -y build-essential checkinstall zlib1g-dev wget", # Устанавливаем зависимости
"cd /usr/local/src", # Переходим в директорию для сборки
"wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz", # Скачиваем OpenSSL 1.1.x
"tar -xzf openssl-1.1.1w.tar.gz", # Распаковываем архив
"cd openssl-1.1.1w", # Переходим в распакованную директорию
"./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl shared zlib", # Конфигурируем OpenSSL
"make", # Собираем OpenSSL
"make test", # Тестируем сборку
"make install", # Устанавливаем OpenSSL
"echo '/usr/local/ssl/lib' > /etc/ld.so.conf.d/openssl-1.1.conf", # Добавляем путь к библиотекам
"ldconfig", # Обновляем кэш библиотек
"mv /usr/bin/c_rehash /usr/bin/c_rehash.backup || true", # Бэкап старого c_rehash
"mv /usr/bin/openssl /usr/bin/openssl.backup || true", # Бэкап старого openssl
"echo 'PATH=\"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/ssl/bin\"' > /etc/environment", # Обновляем PATH
". /etc/environment", # Применяем обновление PATH
]
image = "ubuntu:16.04"
[target.i686-unknown-linux-gnu.env]
passthrough = [
"OPENSSL_DIR=/usr/local/ssl", # Корневой каталог OpenSSL
"OPENSSL_LIB_DIR=/usr/local/ssl/lib", # Каталог с библиотеками
"OPENSSL_INCLUDE_DIR=/usr/local/ssl/include", # Каталог с заголовочными файлами
]
[target.i686-unknown-linux-gnu]
pre-build = [
"dpkg --add-architecture i386", # Добавляем поддержку 32-битных пакетов
"apt-get update",
"apt-get install -y build-essential checkinstall zlib1g-dev:i386 gcc-multilib g++-multilib wget curl git", # Устанавливаем зависимости
# Устанавливаем Rust
"curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain stable --target i686-unknown-linux-gnu",
". $HOME/.cargo/env", # Активируем окружение Rust
# Устанавливаем OpenSSL
"cd /usr/local/src", # Переходим в директорию для сборки
"wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz", # Скачиваем OpenSSL 1.1.x
"tar -xzf openssl-1.1.1w.tar.gz", # Распаковываем архив
"cd openssl-1.1.1w", # Переходим в распакованную директорию
"./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl shared zlib -m32 no-asm", # Конфигурируем OpenSSL
"make clean", # Очищаем предыдущие сборки
"make", # Собираем OpenSSL
"make install", # Устанавливаем OpenSSL
"echo '/usr/local/ssl/lib' > /etc/ld.so.conf.d/openssl-1.1.conf",# Добавляем путь к библиотекам
"ldconfig", # Обновляем кэш библиотек
"mv /usr/bin/c_rehash /usr/bin/c_rehash.backup || true", # Бэкап старого c_rehash
"mv /usr/bin/openssl /usr/bin/openssl.backup || true", # Бэкап старого openssl
"echo 'PATH=\"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/ssl/bin\"' > /etc/environment", # Обновляем PATH
". /etc/environment", # Применяем обновление PATH
]
image = "ubuntu:16.04" # Используем 64-битный образ

View File

@@ -0,0 +1,31 @@
[target.x86_64-unknown-linux-gnu.env]
passthrough = [
"OPENSSL_DIR=/usr", # Корневой каталог OpenSSL
"OPENSSL_LIB_DIR=/usr/lib/x86_64-linux-gnu", # Каталог с библиотеками
"OPENSSL_INCLUDE_DIR=/usr/include", # Каталог с заголовочными файлами
]
[target.x86_64-unknown-linux-gnu]
pre-build = [
"export DEBIAN_FRONTEND=noninteractive",
"apt-get update",
"apt-get install -y build-essential pkg-config libssl-dev", # Устанавливаем OpenSSL
]
image = "ubuntu:22.04"
[target.i686-unknown-linux-gnu.env]
passthrough = [
"OPENSSL_DIR=/usr", # Корневой каталог OpenSSL
"OPENSSL_LIB_DIR=/usr/lib/i386-linux-gnu", # Каталог с библиотеками
"OPENSSL_INCLUDE_DIR=/usr/include", # Каталог с заголовочными файлами
]
[target.i686-unknown-linux-gnu]
pre-build = [
"export DEBIAN_FRONTEND=noninteractive",
"dpkg --add-architecture i386", # Добавляем поддержку 32-битных библиотек
"apt-get update",
"apt-get install -y build-essential pkg-config libssl-dev:i386", # Устанавливаем 32-битные OpenSSL
"apt-get install -y gcc-multilib g++-multilib", # Устанавливаем мультиархитектурные компиляторы
]
image = "ubuntu:22.04"

View File

@@ -0,0 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<bundle xmlns='http://v8.1c.ru/8.2/addin/bundle' name='OPIADDIN'>
<component os='Linux' path='AddIn_x86_linux.so' type='native' arch='i386' />
<component os='Linux' path='AddIn_x64_linux.so' type='native' arch='x86_64' />
</bundle>

View File

@@ -0,0 +1,7 @@
<?xml version='1.0' encoding='UTF-8'?>
<bundle xmlns='http://v8.1c.ru/8.2/addin/bundle' name='OPIADDIN'>
<component os='Windows' path='AddIn_x86_windows.dll' type='native' arch='i386' />
<component os='Windows' path='AddIn_x64_windows.dll' type='native' arch='x86_64' />
<component os='Linux' path='AddIn_x86_linux.so' type='native' arch='i386' />
<component os='Linux' path='AddIn_x64_linux.so' type='native' arch='x86_64' />
</bundle>

124
src/addins/build.bat vendored Normal file
View File

@@ -0,0 +1,124 @@
@echo off
set THIS_DIR=%~dp0
set "THIS_DIR=%THIS_DIR:\=/%"
:: Перейти в директорию проекта
cd /d %ADDIN_DIR%
goto :next
:: Создать папку для артефактов
set OUTPUT_DIR=artifacts
if not exist "%OUTPUT_DIR%" mkdir "%OUTPUT_DIR%"
:: СБОРКА ОСНОВНОЙ ВЕРСИИ ----------------------------------------------------------------------------------------------
cross clean
cargo clean
set CROSS_CONFIG=%THIS_DIR%CROSS_MAIN.toml
:: Сборка для x86_64-pc-windows-msvc
cargo build --release --target x86_64-pc-windows-msvc
if errorlevel 1 goto :error
:: Сборка для x86_64-unknown-linux-gnu
cross build --release --target x86_64-unknown-linux-gnu
if errorlevel 1 goto :error
:: Сборка для i686-pc-windows-msvc
cargo build --release --target i686-pc-windows-msvc
if errorlevel 1 goto :error
:: Сборка для i686-unknown-linux-gnu
cross build --release --target i686-unknown-linux-gnu
if errorlevel 1 goto :error
:: Копирование файлов .dll и .so
copy /y target\x86_64-pc-windows-msvc\release\%CARGO_NAME%.dll "%OUTPUT_DIR%\AddIn_x64_windows.dll"
if errorlevel 1 goto :error
copy /y target\i686-pc-windows-msvc\release\%CARGO_NAME%.dll "%OUTPUT_DIR%\AddIn_x86_windows.dll"
if errorlevel 1 goto :error
copy /y target\x86_64-unknown-linux-gnu\release\lib%CARGO_NAME%.so "%OUTPUT_DIR%\AddIn_x64_linux.so"
if errorlevel 1 goto :error
copy /y target\i686-unknown-linux-gnu\release\lib%CARGO_NAME%.so "%OUTPUT_DIR%\AddIn_x86_linux.so"
if errorlevel 1 goto :error
copy /y ..\MANIFEST_MAIN.XML "%OUTPUT_DIR%\MANIFEST.XML"
if errorlevel 1 goto :error
:: Архивация
powershell -Command "Compress-Archive -Path '%OUTPUT_DIR%\*' -Force -DestinationPath '%LIB_NAME%.zip'"
if errorlevel 1 goto :error
copy /y "%LIB_NAME%.zip" "../../ru/OInt/addins/%LIB_NAME%.zip"
copy /y "%LIB_NAME%.zip" "../../en/OInt/addins/%LIB_NAME%.zip"
copy /y "%LIB_NAME%.zip" "../../ru/OPI/src/CommonTemplates/%LIB_NAME%/Template.addin"
copy /y "%LIB_NAME%.zip" "../../en/OPI/src/CommonTemplates/%LIB_NAME%/Template.addin"
if exist "%OUTPUT_DIR%" (
rmdir /S /Q "%OUTPUT_DIR%"
)
@echo (MAIN) Build and packaging completed successfully.
goto :next
:error
@echo (MAIN) An error occurred during the build or packaging process.
exit /b 1
:next
:: СБОРКА ВЕРСИИ ДЛЯ СТАРЫХ СИСТЕМ -------------------------------------------------------------------------------------
cross clean
cargo clean
:: Создать папку для артефактов
set OUTPUT_DIR=artifacts_folv
if not exist "%OUTPUT_DIR%" mkdir "%OUTPUT_DIR%"
set LIB_NAME=%LIB_NAME%_FOLV
set CROSS_CONFIG=%THIS_DIR%CROSS_FOLV.toml
:: Сборка для x86_64-unknown-linux-gnu
cross build --release --target x86_64-unknown-linux-gnu
if errorlevel 1 goto :error
:: Сборка для i686-unknown-linux-gnu
cross build --release --target i686-unknown-linux-gnu
if errorlevel 1 goto :error
copy /y target\x86_64-unknown-linux-gnu\release\lib%CARGO_NAME%.so "%OUTPUT_DIR%\AddIn_x64_linux.so"
if errorlevel 1 goto :error
copy /y target\i686-unknown-linux-gnu\release\lib%CARGO_NAME%.so "%OUTPUT_DIR%\AddIn_x86_linux.so"
if errorlevel 1 goto :error
copy /y ..\MANIFEST_FOLV.XML "%OUTPUT_DIR%\MANIFEST.XML"
if errorlevel 1 goto :error
:: Архивация
powershell -Command "Compress-Archive -Path '%OUTPUT_DIR%\*' -Force -DestinationPath '%LIB_NAME%.zip'"
if errorlevel 1 goto :error
copy /y "%LIB_NAME%.zip" "../../ru/OInt/addins/%LIB_NAME%.zip"
copy /y "%LIB_NAME%.zip" "../../en/OInt/addins/%LIB_NAME%.zip"
copy /y "%LIB_NAME%.zip" "../../ru/OPI/src/CommonTemplates/%LIB_NAME%/Template.addin"
copy /y "%LIB_NAME%.zip" "../../en/OPI/src/CommonTemplates/%LIB_NAME%/Template.addin"
if exist "%OUTPUT_DIR%" (
rmdir /S /Q "%OUTPUT_DIR%"
)
@echo (FOLV) Build and packaging completed successfully.
exit /b 0
:error
@echo (FOLV) An error occurred during the build or packaging process.
exit /b 1

View File

@@ -1,40 +0,0 @@
[target.x86_64-unknown-linux-gnu.env]
passthrough = [
"OPENSSL_DIR=/usr/local/ssl", # Корневой каталог OpenSSL 1.1.x
"OPENSSL_LIB_DIR=/usr/local/lib64", # Каталог с библиотеками
"OPENSSL_INCLUDE_DIR=/usr/local/include", # Каталог с заголовочными файлами
]
[target.x86_64-unknown-linux-gnu]
zig = false # Отключаем Zig, чтобы использовать системные зависимости
pre-build = [
"export DEBIAN_FRONTEND=noninteractive || true", # Для Ubuntu/Debian
"yum install -y gcc gcc-c++ make perl wget tar gzip || true", # Устанавливаем необходимые инструменты для CentOS
"wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz", # Скачиваем OpenSSL 1.1.x
"tar -xzf openssl-1.1.1w.tar.gz", # Распаковываем архив
"cd openssl-1.1.1w && ./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl && make && make install", # Компилируем и устанавливаем OpenSSL 1.1.x
"ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1", # Создаем символические ссылки
"ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.1",
]
image = "centos:7" # Используем CentOS 7 с glibc 2.17
[target.i686-unknown-linux-gnu.env]
passthrough = [
"OPENSSL_DIR=/usr/local/ssl", # Корневой каталог OpenSSL 1.1.x
"OPENSSL_LIB_DIR=/usr/local/lib", # Каталог с библиотеками
"OPENSSL_INCLUDE_DIR=/usr/local/include", # Каталог с заголовочными файлами
]
[target.i686-unknown-linux-gnu]
zig = false # Отключаем Zig, чтобы использовать системные зависимости
pre-build = [
"export DEBIAN_FRONTEND=noninteractive || true", # Для Ubuntu/Debian
"yum install -y gcc gcc-c++ make perl wget tar gzip || true", # Устанавливаем необходимые инструменты для CentOS
"yum install -y glibc-devel.i686 libstdc++-devel.i686 || true", # Устанавливаем 32-битные библиотеки
"wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz", # Скачиваем OpenSSL 1.1.x
"tar -xzf openssl-1.1.1w.tar.gz", # Распаковываем архив
"cd openssl-1.1.1w && ./Configure linux-generic32 --prefix=/usr/local/ssl --openssldir=/usr/local/ssl && make && make install", # Компилируем и устанавливаем OpenSSL 1.1.x для 32-битной архитектуры
"ln -s /usr/local/lib/libcrypto.so.1.1 /usr/lib/libcrypto.so.1.1", # Создаем символические ссылки
"ln -s /usr/local/lib/libssl.so.1.1 /usr/lib/libssl.so.1.1",
]
image = "centos:7" # Используем CentOS 7 с glibc 2.17

Binary file not shown.

View File

@@ -3,67 +3,6 @@
:: Установить переменную
set CARGO_NAME=opi_postgres
set LIB_NAME=OPI_PostgreSQL
set OPENSSL_DIR=C:\msys64\mingw64
set OPENSSL_LIB_DIR=%OPENSSL_DIR%\lib
set OPENSSL_INCLUDE_DIR=%OPENSSL_DIR%\include
set ADDIN_DIR=%~dp0
:: Перейти в директорию проекта
cd /d "%~dp0"
:: Создать папку для артефактов
set OUTPUT_DIR=artifacts
if not exist "%OUTPUT_DIR%" mkdir "%OUTPUT_DIR%"
:: Сборка для x86_64-pc-windows-msvc
cargo build --release --target x86_64-pc-windows-msvc
if errorlevel 1 goto :error
:: Сборка для x86_64-unknown-linux-gnu
cross build --release --target x86_64-unknown-linux-gnu
if errorlevel 1 goto :error
:: Сборка для i686-pc-windows-msvc
cargo build --release --target i686-pc-windows-msvc
if errorlevel 1 goto :error
:: Сборка для i686-unknown-linux-gnu
cross build --release --target i686-unknown-linux-gnu
if errorlevel 1 goto :error
:: Копирование файлов .dll и .so
copy /y target\x86_64-pc-windows-msvc\release\%CARGO_NAME%.dll "%OUTPUT_DIR%\AddIn_x64_windows.dll"
if errorlevel 1 goto :error
copy /y target\i686-pc-windows-msvc\release\%CARGO_NAME%.dll "%OUTPUT_DIR%\AddIn_x86_windows.dll"
if errorlevel 1 goto :error
copy /y target\x86_64-unknown-linux-gnu\release\lib%CARGO_NAME%.so "%OUTPUT_DIR%\AddIn_x64_linux.so"
if errorlevel 1 goto :error
copy /y target\i686-unknown-linux-gnu\release\lib%CARGO_NAME%.so "%OUTPUT_DIR%\AddIn_x86_linux.so"
if errorlevel 1 goto :error
copy /y MANIFEST.XML "%OUTPUT_DIR%\MANIFEST.XML"
if errorlevel 1 goto :error
:: Архивация
powershell -Command "Compress-Archive -Path '%OUTPUT_DIR%\*' -Force -DestinationPath '%LIB_NAME%.zip'"
if errorlevel 1 goto :error
copy /y "%LIB_NAME%.zip" "../../ru/OInt/addins/%LIB_NAME%.zip"
copy /y "%LIB_NAME%.zip" "../../en/OInt/addins/%LIB_NAME%.zip"
copy /y "%LIB_NAME%.zip" "../../ru/OPI/src/CommonTemplates/%LIB_NAME%/Template.addin"
copy /y "%LIB_NAME%.zip" "../../en/OPI/src/CommonTemplates/%LIB_NAME%/Template.addin"
if exist "%OUTPUT_DIR%" (
rmdir /S /Q "%OUTPUT_DIR%"
)
@echo Build and packaging completed successfully.
exit /b 0
:error
@echo An error occurred during the build or packaging process.
exit /b 1
call ../build.bat

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonTemplate xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="823f6e91-a517-46c7-8e44-bc37e61a3f9c">
<name>OPI_PostgreSQL_FOLV</name>
<synonym>
<key>ru</key>
<value>Postgre SQL (For old Linux versions)</value>
</synonym>
<templateType>AddIn</templateType>
</mdclass:CommonTemplate>

View File

@@ -39,11 +39,12 @@
<value>https://github.com/Bayselonarrend/OpenIntegrations</value>
</configurationInformationAddress>
<subsystems>Subsystem.OPI_Интеграция</subsystems>
<commonTemplates>CommonTemplate.OPI_TCPClient</commonTemplates>
<commonTemplates>CommonTemplate.OPI_SQLite</commonTemplates>
<commonTemplates>CommonTemplate.OPI_MySQL</commonTemplates>
<commonTemplates>CommonTemplate.OPI_PostgreSQL</commonTemplates>
<commonTemplates>CommonTemplate.OPI_RCON</commonTemplates>
<commonTemplates>CommonTemplate.OPI_MySQL</commonTemplates>
<commonTemplates>CommonTemplate.OPI_SQLite</commonTemplates>
<commonTemplates>CommonTemplate.OPI_TCPClient</commonTemplates>
<commonTemplates>CommonTemplate.OPI_PostgreSQL_FOLV</commonTemplates>
<commonModules>CommonModule.OPI_Airtable</commonModules>
<commonModules>CommonModule.OPI_Bitrix24</commonModules>
<commonModules>CommonModule.OPI_CDEK</commonModules>