CanadianMachines / MachineLib / CMakeLists.txt
CMakeLists.txt
Raw
project(MachineLib)

set(SOURCE_FILES
        pch.h
        MachineSystem.h MachineSystem.cpp
        MachineSystemFactory.cpp MachineSystemFactory.h
        MachineStandin.cpp MachineStandin.h
        Polygon.cpp Polygon.h
        MachineDialog.cpp MachineDialog.h
        include/machine-api.h
        MachineSystemActual.cpp MachineSystemActual.h
        Machine.cpp Machine.h
        Machine1Factory.cpp Machine1Factory.h
        Component.cpp Component.h
        Shape.cpp Shape.h
        CardReader.cpp CardReader.h
        Instrument.cpp Instrument.h
        Pipe.cpp Pipe.h
        AirSource.cpp AirSource.h
        AirSink.cpp AirSink.h
        StruckInstrument.cpp StruckInstrument.h
        Cylinder.cpp Cylinder.h
        Machine2Factory.cpp Machine2Factory.h
        Tubing.cpp Tubing.h
        Clamp.cpp Clamp.h
        BezierEnd.cpp BezierEnd.h Cymbal.cpp Cymbal.h)

find_package(wxWidgets COMPONENTS core base xrc html xml REQUIRED)
include(${wxWidgets_USE_FILE})

add_library(${PROJECT_NAME} STATIC ${SOURCE_FILES})

# Fetch miniaudio from Github
include(FetchContent)
FetchContent_Declare(
        miniaudio
        GIT_REPOSITORY https://github.com/mackron/miniaudio.git
        GIT_TAG 1778a5e839514f35f41d31449f3573e3adffc51a # Version 0.11.10
)

FetchContent_MakeAvailable(miniaudio)

target_include_directories(${PROJECT_NAME} PUBLIC "${miniaudio_SOURCE_DIR}")
target_link_libraries(${PROJECT_NAME} ${wxWidgets_LIBRARIES})
target_precompile_headers(${PROJECT_NAME} PRIVATE pch.h)