ReaWwise

REAPER extension
Log | Files | Refs | Submodules

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()