rejchev
менеджер клоунов
- Сообщения
- 1,669
- Реакции
- 1,291
Информация в данной статье призвана сохранить лишние часы из-за старательного переноса исходного богокода на исполняемый файл компилятора.
Скажу сразу, способов и их вариаций не мало, использовался простейший пример.
1. Итак, для начала нам необходимо окружение, в котором мы будем работать, поэтому создадим папочку с нашим будущим прожектом.
В корень новоиспеченного проекта закинем spcomp.exe, создадим scripting & plugins. Рабочее пространство подготовлено.

2. Наполним наш прожект смыслом из пары строк бесполезного кода:
3. Покуда наш чудо плагин готов, приступаем к компиляции
Для этого нам понадобится небольшой батник с заранее заготовленным кодом, так же лежащего в корне проекта
4. Покуда наш батник готов, то осталось пошаманить с VS
Пара действий:
5. Сохраняем и запускаем, и смотрим на итог компиляции.

Скажу сразу, способов и их вариаций не мало, использовался простейший пример.
1. Итак, для начала нам необходимо окружение, в котором мы будем работать, поэтому создадим папочку с нашим будущим прожектом.
В корень новоиспеченного проекта закинем spcomp.exe, создадим scripting & plugins. Рабочее пространство подготовлено.

2. Наполним наш прожект смыслом из пары строк бесполезного кода:
Some code:
#pragma newdecls required
public bool OnClientConnect(int client, char[] rejectmsg, int maxlen)
{
return false;
}
3. Покуда наш чудо плагин готов, приступаем к компиляции
Для этого нам понадобится небольшой батник с заранее заготовленным кодом, так же лежащего в корне проекта
Допустим, нас не интересует какой файл компилировать и мы хотим компильнуть все и сразу:
@echo off
setlocal ENABLEDELAYEDEXPANSION
// Тут будем хранить путь до библиотек
set pINC=D:\Old\omg\Sourcemod\110\include
set cPATH=%cd%
if not exist = %pINC% close
copy /Y %cPATH%\scripting\include\ %pINC%\
(for /f delims^= %%i in ('dir /b %cPATH%\scripting\*.sp') do (
spcomp -D%cPATH%\scripting -i%pINC% %%i
))
(for /f delims^= %%i in ('dir /b %cPATH%\scripting\*.smx') do (
move %cPATH%\scripting\%%i ./plugins/
))
4. Покуда наш батник готов, то осталось пошаманить с VS
Пара действий:
- Ctrl+shift+d
- Create a launch.json file
C++:
{
// Т.к. наш батник просто компилит все исходники из папки scripting
// Достаточно будет одной конфигурации
"version": "0.2.0",
"configurations": [
{
"name": "Скомпилить",
"type": "cppvsdbg",
"request": "launch",
"program": "compile.bat",
"cwd": "${workspaceFolder}",
"externalConsole": false
}
]
}
