2017-11-14 04:52:03 +00:00
|
|
|
cmake_minimum_required(VERSION 3.10 FATAL_ERROR) # because of c++17
|
2017-06-18 02:48:52 +00:00
|
|
|
|
2016-05-25 02:00:22 +00:00
|
|
|
project(amuse)
|
|
|
|
|
2017-11-13 06:15:33 +00:00
|
|
|
set(CMAKE_CXX_STANDARD 17)
|
2017-06-18 02:48:52 +00:00
|
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
|
|
|
|
if(NOT MSVC)
|
|
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-narrowing")
|
|
|
|
endif()
|
|
|
|
|
2016-07-18 17:52:17 +00:00
|
|
|
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/boo AND EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/athena)
|
|
|
|
message(STATUS "Preparing standalone build")
|
2016-05-25 02:00:22 +00:00
|
|
|
add_subdirectory(boo)
|
2016-07-18 17:52:17 +00:00
|
|
|
add_subdirectory(athena)
|
|
|
|
include_directories(athena/include)
|
2016-05-25 02:00:22 +00:00
|
|
|
endif()
|
|
|
|
|
2018-07-14 06:06:33 +00:00
|
|
|
atdna(atdna_AudioGroupPool.cpp include/amuse/AudioGroupPool.hpp)
|
|
|
|
atdna(atdna_AudioGroupProject.cpp include/amuse/AudioGroupProject.hpp)
|
2018-07-15 06:10:50 +00:00
|
|
|
atdna(atdna_AudioGroupSampleDirectory.cpp include/amuse/AudioGroupSampleDirectory.hpp)
|
2018-07-14 06:06:33 +00:00
|
|
|
|
2016-05-03 01:16:26 +00:00
|
|
|
set(SOURCES
|
|
|
|
lib/AudioGroup.cpp
|
|
|
|
lib/AudioGroupData.cpp
|
|
|
|
lib/AudioGroupPool.cpp
|
|
|
|
lib/AudioGroupProject.cpp
|
|
|
|
lib/AudioGroupSampleDirectory.cpp
|
2016-06-21 06:40:13 +00:00
|
|
|
lib/DirectoryEnumerator.cpp
|
2016-05-03 01:16:26 +00:00
|
|
|
lib/Emitter.cpp
|
|
|
|
lib/Engine.cpp
|
|
|
|
lib/Envelope.cpp
|
|
|
|
lib/Listener.cpp
|
|
|
|
lib/Sequencer.cpp
|
|
|
|
lib/SoundMacroState.cpp
|
2016-06-21 06:40:13 +00:00
|
|
|
lib/SongConverter.cpp
|
2016-05-19 02:19:43 +00:00
|
|
|
lib/SongState.cpp
|
2016-05-07 22:10:57 +00:00
|
|
|
lib/Voice.cpp
|
|
|
|
lib/Submix.cpp
|
2016-07-13 03:04:55 +00:00
|
|
|
lib/Studio.cpp
|
2016-05-13 01:46:41 +00:00
|
|
|
lib/EffectReverb.cpp
|
2016-05-07 22:10:57 +00:00
|
|
|
lib/EffectChorus.cpp
|
2016-05-11 04:48:08 +00:00
|
|
|
lib/EffectDelay.cpp
|
2016-05-27 00:56:18 +00:00
|
|
|
lib/ContainerRegistry.cpp
|
2018-07-14 06:06:33 +00:00
|
|
|
lib/Common.cpp
|
2018-07-09 18:05:31 +00:00
|
|
|
lib/DSPCodec.cpp
|
2018-07-14 06:06:33 +00:00
|
|
|
lib/N64MusyXCodec.cpp
|
2018-08-16 06:26:44 +00:00
|
|
|
lib/VolumeTable.cpp
|
2018-07-14 06:06:33 +00:00
|
|
|
atdna_AudioGroupPool.cpp
|
2018-07-15 06:10:50 +00:00
|
|
|
atdna_AudioGroupProject.cpp
|
|
|
|
atdna_AudioGroupSampleDirectory.cpp)
|
2016-05-03 01:16:26 +00:00
|
|
|
|
|
|
|
set(HEADERS
|
|
|
|
include/amuse/AudioGroup.hpp
|
|
|
|
include/amuse/AudioGroupData.hpp
|
|
|
|
include/amuse/AudioGroupPool.hpp
|
|
|
|
include/amuse/AudioGroupProject.hpp
|
|
|
|
include/amuse/AudioGroupSampleDirectory.hpp
|
2016-06-21 06:40:13 +00:00
|
|
|
include/amuse/DirectoryEnumerator.hpp
|
2016-05-03 01:16:26 +00:00
|
|
|
include/amuse/Emitter.hpp
|
|
|
|
include/amuse/Engine.hpp
|
|
|
|
include/amuse/Entity.hpp
|
|
|
|
include/amuse/Envelope.hpp
|
|
|
|
include/amuse/Listener.hpp
|
|
|
|
include/amuse/Sequencer.hpp
|
|
|
|
include/amuse/SoundMacroState.hpp
|
2016-06-21 06:40:13 +00:00
|
|
|
include/amuse/SongConverter.hpp
|
2016-05-19 02:19:43 +00:00
|
|
|
include/amuse/SongState.hpp
|
2016-05-03 01:16:26 +00:00
|
|
|
include/amuse/Voice.hpp
|
2016-05-07 22:10:57 +00:00
|
|
|
include/amuse/Submix.hpp
|
2016-07-13 03:04:55 +00:00
|
|
|
include/amuse/Studio.hpp
|
2016-05-07 22:10:57 +00:00
|
|
|
include/amuse/IBackendSubmix.hpp
|
2016-05-03 01:16:26 +00:00
|
|
|
include/amuse/IBackendVoice.hpp
|
|
|
|
include/amuse/IBackendVoiceAllocator.hpp
|
2016-05-07 22:10:57 +00:00
|
|
|
include/amuse/EffectBase.hpp
|
2016-05-13 01:46:41 +00:00
|
|
|
include/amuse/EffectReverb.hpp
|
2016-05-07 22:10:57 +00:00
|
|
|
include/amuse/EffectChorus.hpp
|
|
|
|
include/amuse/EffectDelay.hpp
|
2016-05-27 00:56:18 +00:00
|
|
|
include/amuse/ContainerRegistry.hpp
|
2016-05-03 01:16:26 +00:00
|
|
|
include/amuse/Common.hpp
|
2016-05-11 04:48:08 +00:00
|
|
|
include/amuse/amuse.hpp
|
2018-07-09 18:05:31 +00:00
|
|
|
include/amuse/DSPCodec.hpp
|
2018-08-16 06:26:44 +00:00
|
|
|
include/amuse/N64MusyXCodec.hpp
|
|
|
|
include/amuse/VolumeTable.hpp)
|
2018-09-25 22:39:22 +00:00
|
|
|
if(NX)
|
|
|
|
list(APPEND HEADERS include/switch_math.hpp)
|
|
|
|
endif()
|
2016-05-03 01:16:26 +00:00
|
|
|
|
|
|
|
unset(EXTRAS)
|
|
|
|
if(TARGET boo)
|
2016-05-25 02:00:22 +00:00
|
|
|
include_directories(${BOO_INCLUDE_DIR} ${BOO_INCLUDE_DIR}/../lib ${BOO_INCLUDE_DIR}/../soxr/src
|
2016-09-02 19:52:17 +00:00
|
|
|
${LOGVISOR_INCLUDE_DIR} ${ATHENA_INCLUDE_DIR} ${ZLIB_INCLUDE_DIR} ${LZO_INCLUDE_DIR})
|
2016-05-03 01:16:26 +00:00
|
|
|
list(APPEND EXTRAS lib/BooBackend.cpp include/amuse/BooBackend.hpp)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
include_directories(include)
|
|
|
|
set(AMUSE_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/include CACHE PATH "amuse include path" FORCE)
|
|
|
|
|
|
|
|
add_library(amuse
|
|
|
|
${SOURCES}
|
|
|
|
${HEADERS}
|
|
|
|
${EXTRAS})
|
2017-12-12 02:05:54 +00:00
|
|
|
if(COMMAND add_sanitizers)
|
|
|
|
add_sanitizers(amuse)
|
|
|
|
endif()
|
2017-12-29 07:57:22 +00:00
|
|
|
if(COMMAND cotire)
|
2018-01-01 02:52:40 +00:00
|
|
|
set_target_properties(amuse PROPERTIES COTIRE_ADD_UNITY_BUILD FALSE)
|
2017-12-29 07:57:22 +00:00
|
|
|
cotire(amuse)
|
|
|
|
endif()
|
2016-05-09 07:22:58 +00:00
|
|
|
|
2018-10-07 02:54:56 +00:00
|
|
|
if(TARGET boo AND NOT WINDOWS_STORE AND NOT NX)
|
2016-05-29 18:22:20 +00:00
|
|
|
# AudioUnit Target (OS X only)
|
|
|
|
add_subdirectory(AudioUnit)
|
2016-05-25 02:00:22 +00:00
|
|
|
|
2016-05-29 18:22:20 +00:00
|
|
|
# VST Target
|
|
|
|
add_subdirectory(VST)
|
2016-05-25 02:00:22 +00:00
|
|
|
|
2016-06-21 06:40:13 +00:00
|
|
|
# Multi-platform CLI tools
|
|
|
|
|
|
|
|
# Player
|
|
|
|
add_executable(amuseplay WIN32 driver/amuseplay.cpp)
|
2017-07-02 10:14:33 +00:00
|
|
|
target_link_libraries(amuseplay amuse boo ${BOO_SYS_LIBS} logvisor athena-core athena-libyaml ${ZLIB_LIBRARIES} ${LZO_LIB})
|
2016-06-21 06:40:13 +00:00
|
|
|
|
|
|
|
# Converter
|
|
|
|
add_executable(amuseconv driver/amuseconv.cpp)
|
2017-07-02 10:14:33 +00:00
|
|
|
target_link_libraries(amuseconv amuse boo ${BOO_SYS_LIBS} logvisor athena-core athena-libyaml ${ZLIB_LIBRARIES} ${LZO_LIB})
|
2016-07-06 21:30:46 +00:00
|
|
|
|
|
|
|
# Renderer
|
|
|
|
add_executable(amuserender driver/amuserender.cpp)
|
2017-07-02 10:14:33 +00:00
|
|
|
target_link_libraries(amuserender amuse boo ${BOO_SYS_LIBS} logvisor athena-core athena-libyaml ${ZLIB_LIBRARIES} ${LZO_LIB})
|
2018-03-15 00:25:29 +00:00
|
|
|
|
2018-05-06 23:06:49 +00:00
|
|
|
if(COMMAND add_sanitizers)
|
|
|
|
add_sanitizers(amuseplay)
|
|
|
|
add_sanitizers(amuseconv)
|
|
|
|
add_sanitizers(amuserender)
|
|
|
|
endif()
|
|
|
|
|
2018-03-15 00:25:29 +00:00
|
|
|
# Editor
|
|
|
|
find_package(Qt5Widgets)
|
|
|
|
if (Qt5Widgets_FOUND)
|
|
|
|
message(STATUS "Qt5 found, amuse-gui will be built")
|
|
|
|
add_subdirectory(Editor)
|
|
|
|
else()
|
|
|
|
message(STATUS "Qt5 not found, amuse-gui will not be built")
|
|
|
|
endif()
|
2016-05-09 07:22:58 +00:00
|
|
|
endif()
|