Linking a pre-compiled static library with ThirdParty C++ nodes
-
Mainly a question for @Christoph-Hart .
I'm working on integrating a thirdparty DSP library (PointToPoint by Hack Audio) with the ThirdParty C++ nodes. The library is pretty simple - it's header only for the circuit definitions, but the core DSP is a precompiled static library (
libCircuitModel.aon macOS,libCircuitModel.libon Windows).I've gotten the nodes compiled and working, but my main issue is the linking workflow with the HISE compiler. Since it wipes the binaries folder, the AutogeneratedProject.jucer get's regnerated and my linker settings (a few modifications to the library search path and flag pointing to the
libCircuitModel.a) get removed. So I either have to manually add them back or, edit the.jucer. What I am doing now using this editedbatchCompileOSX.sh(attached below) and building out of XCode.I am just wondering if you have suggestions for a more persistent extra linker flag for the library paths across the different DLL recompiles? I'm thinking something like a config file the HISE can read before generating the
.jucer? My system works but it's just a bit clunky right now. I want to open this up for other users so it would be nice to make it compatible with the HISE compiler.#!/bin/bash PATH="/usr/local/bin:$PATH" chmod +x "/Users/ernest/HISE/JUCE/Projucer/Projucer.app/Contents/MacOS/Projucer" cd "`dirname "$0"`" "/Users/ernest/HISE/JUCE/Projucer/Projucer.app/Contents/MacOS/Projucer" --resave AutogeneratedProject.jucer // Patch link to the PointToPoint Library XCPROJ="Builds/MacOSX/Hise-PointToPoint.xcodeproj/project.pbxproj" PTP_LIB="../../ThirdParty/src/PointToPoint/lib/Release/libCircuitModel.a" PTP_HDR="../../ThirdParty/src/PointToPoint" if [ -f "$XCPROJ" ]; then if ! grep -q "PointToPoint" "$XCPROJ"; then # Add header search paths sed -i '' "s|HEADER_SEARCH_PATHS = (|HEADER_SEARCH_PATHS = (\"$PTP_HDR\",|g" "$XCPROJ" # Add library search paths sed -i '' "s|LIBRARY_SEARCH_PATHS = (|LIBRARY_SEARCH_PATHS = (\"../../ThirdParty/src/PointToPoint/lib/Release\",|g" "$XCPROJ" # Add CircuitModel.a library sed -i '' "s|OTHER_LDFLAGS = (|OTHER_LDFLAGS = (\"-lCircuitModel\",|g" "$XCPROJ" fi fi # ============================================================ set -o pipefail echo Compiling Hise-PointToPoint ... xcodebuild -project "Builds/MacOSX/Hise-PointToPoint.xcodeproj" -configuration "Release" -jobs "8" | "/Users/ernest/HISE/tools/Projucer/xcbeautify"