CMakeLists.txt (3768B)
1 include(Helpers) 2 3 if(APPLE) 4 macro (set_xcode_property TARGET XCODE_PROPERTY XCODE_VALUE) 5 set_property (TARGET ${TARGET} PROPERTY XCODE_ATTRIBUTE_${XCODE_PROPERTY} ${XCODE_VALUE}) 6 endmacro (set_xcode_property) 7 endif() 8 9 project(ReaWwise) 10 11 if(WIN32) 12 file(GLOB_RECURSE EXTENSION_SOURCES 13 "${PROJECT_SOURCE_DIR}/*.h" 14 "${PROJECT_SOURCE_DIR}/*.cpp") 15 else() 16 file(GLOB_RECURSE EXTENSION_SOURCES 17 "${PROJECT_SOURCE_DIR}/*.h" 18 "${PROJECT_SOURCE_DIR}/*.cpp") 19 endif() 20 21 add_library(${PROJECT_NAME} SHARED) 22 add_library(${PROJECT_NAME}_Static STATIC) 23 24 set(PROJECT_LIST ${PROJECT_NAME} ${PROJECT_NAME}_Static) 25 26 if(NOT DEFINED ENV{BUILD_NUMBER}) 27 if(APPLE) 28 set(EXTENSION_OUTPUT_DIR "~/Library/Application Support/Reaper/UserPlugins") 29 30 set_target_properties(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${EXTENSION_OUTPUT_DIR}) 31 set_target_properties(${PROJECT_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${EXTENSION_OUTPUT_DIR}) 32 set_target_properties(${PROJECT_NAME} PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${EXTENSION_OUTPUT_DIR}) 33 elseif(WIN32) 34 set(EXTENSION_OUTPUT_DIR "$ENV{APPDATA}\\REAPER\\UserPlugins") 35 36 foreach(OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES}) 37 string(TOUPPER ${OUTPUTCONFIG} OUTPUTCONFIG) 38 set_target_properties(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${EXTENSION_OUTPUT_DIR}) 39 set_target_properties(${PROJECT_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${EXTENSION_OUTPUT_DIR}) 40 set_target_properties(${PROJECT_NAME} PROPERTIES ARCHIVE_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${EXTENSION_OUTPUT_DIR}) 41 endforeach(OUTPUTCONFIG CMAKE_CONFIGURATION_TYPES) 42 43 set_target_properties(${PROJECT_NAME} PROPERTIES VS_DEBUGGER_COMMAND "C:\\Program Files\\REAPER (x64)\\reaper.exe") 44 endif() 45 endif() 46 47 set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "") 48 set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME reaper_reawwise) 49 50 foreach(PROJ ${PROJECT_LIST}) 51 target_sources(${PROJ} PRIVATE ${EXTENSION_SOURCES}) 52 53 target_include_directories(${PROJ} 54 PUBLIC 55 ${PROJECT_SOURCE_DIR}/ 56 ) 57 58 target_link_libraries(${PROJ} 59 PRIVATE 60 WwiseTransfer_Shared 61 Reaper 62 ) 63 64 target_compile_definitions(${PROJ} 65 PRIVATE 66 REAPERAPI_MINIMAL 67 REAPERAPI_WANT_GetMainHwnd 68 REAPERAPI_WANT_AddExtensionsMainMenu 69 REAPERAPI_WANT_EnumProjects 70 REAPERAPI_WANT_GetSetProjectInfo_String 71 REAPERAPI_WANT_ResolveRenderPattern 72 REAPERAPI_WANT_Main_OnCommand 73 REAPERAPI_WANT_GetProjExtState 74 REAPERAPI_WANT_SetProjExtState 75 REAPERAPI_WANT_MarkProjectDirty 76 REAPERAPI_WANT_realloc_cmd_register_buf 77 REAPERAPI_WANT_realloc_cmd_clear 78 REAPERAPI_WANT_GetProjectStateChangeCount 79 REAPERAPI_WANT_GetSetProjectInfo 80 JUCE_APPLICATION_NAME_STRING="${PROJECT_NAME}" 81 JUCE_STANDALONE_APPLICATION=0 82 JUCE_REMOVE_COMPONENT_FROM_DESKTOP_ON_WM_DESTROY=1 83 ) 84 endforeach() 85 86 find_package(Reaper REQUIRED) 87 88 if(APPLE) 89 if(DEFINED ENV{CODE_SIGN_IDENTITY_ID} AND DEFINED ENV{DEVELOPMENT_TEAM_ID}) 90 SET_XCODE_PROPERTY(${PROJECT_NAME} CODE_SIGN_IDENTITY $ENV{CODE_SIGN_IDENTITY_ID}) 91 SET_XCODE_PROPERTY(${PROJECT_NAME} DEVELOPMENT_TEAM $ENV{DEVELOPMENT_TEAM_ID}) 92 endif() 93 94 find_package(Swell REQUIRED) 95 96 foreach(PROJ ${PROJECT_LIST}) 97 target_link_libraries(${PROJ} PRIVATE Swell) 98 endforeach() 99 endif() 100 101 source_group(TREE ${PROJECT_SOURCE_DIR} PREFIX "Source Files" FILES ${EXTENSION_SOURCES}) 102 103 build_juce_source_groups()