🧃
【備忘録】VSCodeでJUCEの開発をする方法
制約
JUCE公式のGUIツール「Projucer」は、Visual Studio または Xcode を前提としている。
それ以外のIDE(たとえばVSCode)を使いたい場合は、CMakeベースの構成を選ぶ必要がある。
なお、今回はMSVC 2022でビルドするため、Visual Studio 2022のインストールが必須。
環境
- Git 2.34.1
- CMake 4.0.1
- Visual Studio 2022
- Cursor 0.48.9 (VSCodeのfork)
- JUCE 8.0.7
VSCode拡張機能
- C/C++ Extension Pack 1.3.0
テンプレートの作成
CMakeベースのJUCEプロジェクトテンプレートを作成し、時短を図る。
構成は以下の通り
lib/
└── JUCE/
src/
├── PluginEditor.cpp
├── PluginEditor.h
├── PluginProcessor.cpp
└── PluginProcessor.h
CMakeLists.txt
CMakePresets.json
JUCE
は次の JUCEライブラリの取得
で公式リポジトリからクローンする。
src/
以下のファイルは、JUCEの examples/CMake/AudioPlugin
からコピーする。
JUCEライブラリの取得
lib/
ディレクトリ内で以下のコマンドを実行
git clone https://github.com/juce-framework/JUCE.git
CMakeLists.txtを編集する
cmake_minimum_required(VERSION 3.22)
project(juce_cmake_template VERSION 0.0.1)
enable_language(CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
add_compile_options(/utf-8)
endif()
add_subdirectory(lib/JUCE)
juce_add_plugin(NewProject
PLUGIN_MANUFACTURER_CODE Juce
PLUGIN_CODE Dem0
FORMATS AU VST3 Standalone
PRODUCT_NAME "NewProject")
target_sources(NewProject
PRIVATE
src/PluginEditor.cpp
src/PluginProcessor.cpp)
target_compile_definitions(NewProject
PUBLIC
JUCE_WEB_BROWSER=0
JUCE_USE_CURL=0
JUCE_VST3_CAN_REPLACE_VST2=0)
target_link_libraries(NewProject
PRIVATE
juce::juce_audio_utils
PUBLIC
juce::juce_recommended_config_flags
juce::juce_recommended_lto_flags
juce::juce_recommended_warning_flags)
CMakePresets.jsonを編集する
{
"version": 3,
"cmakeMinimumRequired": {
"major": 3,
"minor": 22,
"patch": 0
},
"configurePresets": [
{
"name": "vs2022",
"displayName": "Visual Studio 17 2022",
"generator": "Visual Studio 17 2022",
"binaryDir": "${sourceDir}/build",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release"
}
}
]
}
VSCodeでビルドする
拡張機能のCMake Toolsが入っていれば起動時に事前設定の選択が表示される。
Visual Studio 17 2022
を選択することでビルドが可能になる。
Releaseビルドをしたい場合は以下のコマンドを入力する。
cmake --build build --config Release
作成したテンプレート
--recursive
を付ける。
git clone --recursive https://github.com/Saisana299/juce_cmake_template.git
参考
Discussion