This project is a C++20 based tool designed for extracting and processing assets. It uses CMake for its build system and automatically manages all third-party dependencies via FetchContent.
Before compiling, ensure you have the following installed:
- CMake: Version 3.20 or higher.
- C++20 Compiler:
- Windows: Visual Studio 2019/2022 (MSVC) or MinGW-w64 (GCC 10+).
- Linux/macOS: GCC 10+ or Clang 10+.
- Git: Required by CMake to download dependencies during the configuration stage.
git clone https://github.com/HeYin-OS/SongExtrationForSomeGame.git
cd SongExtrationForSomeGameCreate a build directory and configure the project. Using Release mode is highly recommended as the CMakeLists.txt includes specific size optimizations and symbol stripping for non-debug builds.
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=ReleaseNote: During this step, CMake will automatically download several libraries (including
taglib,zlib,pugixml,indicators, andrang). This may take a few moments depending on your network speed.
Run the following command to compile the project:
Using CMake (Cross-platform):
cmake --build . --config ReleaseUsing Make (Linux/MinGW):
make -j$(nproc)Once the build is complete, the executable will be located in the build directory (or build/Release on Windows).
The output binary is automatically named based on the version and architecture, for example:
unified_bemani_extractor_0.5.2_win64.exe
- Static Linking (Windows): On Windows platforms, the binary is configured to link
libgcc,libstdc++, andwinpthreadstatically to ensure portability across different systems. - Size Optimization: In Release mode, the build uses
-Os(optimize for size) and strips debug symbols to keep the executable lightweight. - UTF-8 Support: The compiler is forced to use UTF-8 for both input and execution character sets.