플러그인 빌드하기
build
명령은 이전에 생성된 솔루션을 사용하여 플러그인을 컴파일하고 바이너리 파일을 Wwise 설치에 복사해넣습니다 (프로젝트 폴더에 아무 솔루션도 없는 경우 Premake로 프로젝트 환경 설정하기 를 참고하세요). 이 명령은 프로젝트 폴더 안에서 호출돼야 하며, 제대로 작동하기 위해 몇 가지 전달인자가 필요합니다. 다음은 많이 사용되는 빌드 명령입니다.
python "%WWISEROOT%/Scripts/Build/Plugins/wp.py" build -c Release -x x64 -t vc160 Authoring
이 명령은 현재 운영 체제의 플랫폼 Authoring에 대해 아키텍처 x64 (-x
flag) 및 MSVC 툴셋 vc160 (-t
flag)을 대상으로 하는 release 모드 (-c
flag)에서 프로젝트를 빌드합니다. 전달인자로 어떤 값을 사용할 수 있는지에 대한 내용은 build
명령의 설명을 참고하세요.
python "%WWISEROOT%/Scripts/Build/Plugins/wp.py" build -h
바이너리가 사용자의 Wwise 설치 경로에 직접 출력되며 테스트할 준비가 완료됩니다.
- SoundEngine 플러그인 부분에 대해서는
%WWISEROOT%/SDK/{Platform}/{Config}/{bin,lib}
를 확인하세요.
- Windows의 Authoring 플러그인 부분에 대해서는
%WWISEROOT%/Authoring/x64/{Config}/bin/Plugins
를 확인하세요.
- macOS의 Authoring 플러그인 부분에 대해서는
%WWISEROOT%/Authoring/macosx_gmake/{Config}/bin/Plugins
를 확인하세요.
- Linux의 Authoring 플러그인 부분에 대해서는
%WWISEROOT%/Authoring/linux_gmake/{Config}/bin/Plugins
를 확인하세요.
- Documentation 플러그인 부분에 대해서는
%WWISEROOT%/Authoring/Data/Plugins/{PluginName}/Html
을 확인하세요.
 | 참고: 일부 플랫폼은 각 프로젝트 빌드 호출에 대해 고유한 환경 변수 설정을 포함, build 명령 실행 도중 여러 툴체인 버전에 대해 플러그인을 빌드합니다. 각 지원 플랫폼, 즉 %WWISEROOT%/Scripts/ToolchainSetup/{Platform} 디렉터리에는 두 파일이 들어있습니다.
ToolchainVers.txt : 해당 플랫폼에 대해 지원되는 툴체인 버전 목록.
GetToolchainEnv.py : ToolchainVers.txt 의 값 중 하나를 전달인자로 사용하여 빌드 처리 중 적용될 환경 변수를 결정.
필요한 경우 wp.py에서 빌드 명령을 실행할 때 명령줄에서 –toolchain-vers {file} 또는 –toolchain-env-script {file} 을 지정해 위의 두 파일 중 하나를 오버라이드할 수 있습니다. 자신의 빌드 구조를 유지하고 싶은 경우, 또는 Wwise SDK와는 별개로 툴체인에 대한 플러그인을 배포하고자 할 경우 이 방법을 사용할 수 있습니다.
또한 wp.py가 생성한 프로젝트는 정의된 환경에 따라 해당 프로젝트가 컴파일된 툴체인 버전에 대해 빌드 출력 폴더를 자동으로 조정합니다. 이 같은 내용이 각 플랫폼에 대해 어떻게 결정되는지에 대한 더 자세한 내용은 해당 플랫폼 전용 정보 페이지를 참고하세요.
|
대상 플랫폼 추가하기
대상 플랫폼은 플러그인 개발 도중 어느 단계에서든 추가할 수 있습니다. 추가는 플랫폼의 사전 제작 및 빌드를 통해 이뤄집니다. 그러기 위해서는 최소 하나 이상의 플랫폼을 빌드해야 하며, Authoring
을 위해 빌드할 경우 Documentation
또한 함께 빌드해야 합니다. 이렇게 하면 특정 속성이 선택됐을 때 Property Help 패널에 표시되는 플러그인 속성에 대한 문서를 설치하게 됩니다.
예시로, 명령줄에 다음과 같은 내용을 실행해 Windows_vc160과 Authoring 플랫폼을 사전 제작하고 빌드해볼 수 있습니다.
python "%WWISEROOT%/Scripts/Build/Plugins/wp.py" premake Windows_vc160
python "%WWISEROOT%/Scripts/Build/Plugins/wp.py" premake Authoring
python "%WWISEROOT%/Scripts/Build/Plugins/wp.py" build Windows_vc160 -c Release -x x64
python "%WWISEROOT%/Scripts/Build/Plugins/wp.py" build Authoring -c Release -x x64 -t vc160
python "%WWISEROOT%/Scripts/Build/Plugins/wp.py" build Documentation
후크를 이용해 빌드 후 동작 실행하기
특정 대상을 빌드한 다음 커스텀 동작을 실행시키는 경우가 있습니다. 이를 위해서는 –build-hooks-file
flag를 build
명령에 추가하고 Python 파일을 지정합니다. 이 파일은 반드시 User에 의해 생성돼야하며, new
명령에 의해 생성되는 초기 스켈레톤의 일부분이 아닙니다. 다음은 빌드 후 후크 파일에 들어갈 수 있는 내용의 예시입니다.
def postbuild(**kwargs):
WWISE_ROOT = kwargs.get("wwise_root")
PROJECT_ROOT = kwargs.get("project_root")
platform = kwargs.get("platform")
arch = kwargs.get("arch")
config = kwargs.get("config")
이 예제에서는 Windows_vc160과 Authoring 플랫폼에 대해 빌드 후 후크를 호출합니다.
python "%WWISEROOT%/Scripts/Build/Plugins/wp.py" build Windows_vc160 -c Release -x x64 --build-hooks-file=build_hooks.py
python "%WWISEROOT%/Scripts/Build/Plugins/wp.py" build Authoring -c Release -x x64 -t vc160 --build-hooks-file=build_hooks.py
python "%WWISEROOT%/Scripts/Build/Plugins/wp.py" build Documentation
build_hooks.py 파일은 반드시 플러그인 디렉터리의 루트에 위치해야 합니다.
또 다른 예제에서는 "library.dll" DLL 파일을 플러그인 디렉터리로부터 Wwise 설치로 복사해 넣습니다.
import os
import shutil
import sys
def postbuild(**kwargs):
WWISE_ROOT = kwargs.get("wwise_root")
PROJECT_ROOT = kwargs.get("project_root")
platform = kwargs.get("platform")
arch = kwargs.get("arch")
config = kwargs.get("config")
platform_files = {}
if platform == "Authoring_Windows":
platform_files["Authoring/x64/{}/bin/plugins".format(config)] = [
"Prebuilt/x64/{}/library.dll".format(config)
]
elif platform == "Windows_vc160":
platform_files["SDK/{}/{}/bin".format(arch, config)] = [
"Prebuilt/{}/{}/library.dll".format(arch, config)
]
for dest, files in platform_files.items():
dest = os.path.join(WWISE_ROOT, dest)
for file in files:
file = os.path.join(PROJECT_ROOT, file)
try:
shutil.copy(file, dest)
print("POSTBUILD HOOK: Copied {} to {}".format(file, dest))
except IOError:
sys.stderr.write("POSTBUILD HOOK: Failed to copy {} to {}\n".format(file, dest))
플러그인 개발의 가장 마지막 단계는 Audiokinetic 런처가 곧바로 설치할 수 있는 형태로 플러그인을 패키징하는 것입니다. 자세한 내용은 Audiokinetic 런처를 위해 자신의 플러그인 패키지하기 를 참고하세요.
다음 섹션: Audiokinetic 런처를 위해 자신의 플러그인 패키지하기