Skip to content

Commit

Permalink
Merge pull request #22 from cpyarger/master
Browse files Browse the repository at this point in the history
add version to settings dialog title resolves #20
  • Loading branch information
cpyarger authored Jul 16, 2020
2 parents 7cbdcb4 + 04a3c44 commit 9b46f4f
Show file tree
Hide file tree
Showing 2 changed files with 216 additions and 67 deletions.
121 changes: 54 additions & 67 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -18,20 +18,39 @@ if(WIN32)
set(MODULE_DESCRIPTION "OBS MIDI module")
endif()

# Version bits
execute_process(
COMMAND git rev-parse --abbrev-ref HEAD
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
OUTPUT_VARIABLE GIT_BRANCH
OUTPUT_STRIP_TRAILING_WHITESPACE
)

# Get the latest abbreviated commit hash of the working branch
execute_process(
COMMAND git log -1 --format=%h
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
OUTPUT_VARIABLE GIT_COMMIT_HASH
OUTPUT_STRIP_TRAILING_WHITESPACE
)

configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/include/version.h.in
${CMAKE_CURRENT_SOURCE_DIR}/src/version.h
)


##################
# THE GOOD STUFF #
##################

# RTMIDI
add_subdirectory(src/RtMidi17)

set(obs-midi_DEPS RtMidi17)

include_directories(src/RtMidi17)




# OBS MIDI
set(CMAKE_PREFIX_PATH "${QTDIR}")
set(CMAKE_INCLUDE_CURRENT_DIR ON)
Expand All @@ -55,87 +74,61 @@ endif()

find_package(Qt5 REQUIRED COMPONENTS Core Widgets)

#qt5_add_resources(midi_qrc_sources src/Forms/midi.qrc)
include_directories(
"${LIBOBS_INCLUDE_DIR}/../UI/obs-frontend-api"

SYSTEM
${Qt5Core_INCLUDES}
${Qt5Widgets_INCLUDES}
"${CMAKE_SOURCE_DIR}/UI")
execute_process(
COMMAND git rev-parse --abbrev-ref HEAD
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
OUTPUT_VARIABLE GIT_BRANCH
OUTPUT_STRIP_TRAILING_WHITESPACE
)

# Get the latest abbreviated commit hash of the working branch
execute_process(
COMMAND git log -1 --format=%h
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
OUTPUT_VARIABLE GIT_COMMIT_HASH
OUTPUT_STRIP_TRAILING_WHITESPACE
)

configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/include/version.h.in
${CMAKE_CURRENT_SOURCE_DIR}/src/version.h
)
set(obs-midi_SOURCES
${midi_ui_headers}
src/utils.cpp
src/config.cpp
src/midi-agent.cpp
src/device-manager.cpp
src/obs-controller.cpp
src/forms/settings-dialog.cpp
src/forms/settings-dialog.cpp
src/forms/configwindow.cpp
src/obs-midi.cpp
src/obs-midi.cpp
src/events.cpp
src/rpc/RpcEvent.cpp
)

list(APPEND obs-midi_HEADERS
src/utils.h
src/config.h
src/midi-agent.h
src/device-manager.h
src/obs-controller.h
src/forms/settings-dialog.h
src/forms/configwindow.h
src/obs-midi.h
src/events.h
src/rpc/RpcEvent.h
${CMAKE_CURRENT_SOURCE_DIR}/src/version.h
#"${CMAKE_SOURCE_DIR}/UI/window-control.hpp"
)
set(obs-midi_UI

src/forms/settings-dialog.ui
src/forms/configwindow.ui
list(APPEND obs-midi_HEADERS
src/utils.h
src/config.h
src/midi-agent.h
src/device-manager.h
src/obs-controller.h
src/forms/settings-dialog.h
src/forms/configwindow.h
src/obs-midi.h
src/events.h
src/rpc/RpcEvent.h
)
qt5_wrap_ui(obs-midi_UI_HEADERS ${obs-midi_UI})

add_library(obs-midi MODULE
${obs-midi_UI_HEADERS}
${obs-midi_SOURCES}
${obs-midi_HEADERS})
set_target_properties(obs-midi PROPERTIES FOLDER "plugins/obs-midi")
set_target_properties(RtMidi17 PROPERTIES FOLDER "plugins/obs-midi")
if (${isAzure})
if(WIN32 OR LINUX)

if(WIN32 OR LINUX)
if (${isAzure})

target_link_libraries(obs-midi
"${OBS_FRONTEND_LIB}"
${obs-midi_DEPS}
Qt5::Core
Qt5::Widgets
libobs
window-control)



libobs)
else()
target_link_libraries(obs-midi
obs-frontend-api
${obs-midi_DEPS}
Qt5::Core
Qt5::Widgets
libobs)
endif()
else()
target_link_libraries(obs-midi
"${OBS_FRONTEND_LIB}"
Expand All @@ -144,12 +137,10 @@ else()
Qt5::Widgets
libobs)
endif()
endif()
if (${isAzure})
# --- Windows-specific build settings and tasks ---


if(WIN32)
if (${isAzure})
message(WARNING "IS AZURE")
if(WIN32)
if(NOT DEFINED OBS_FRONTEND_LIB)
set(OBS_FRONTEND_LIB "OBS_FRONTEND_LIB-NOTFOUND" CACHE FILEPATH "OBS frontend library")
message(FATAL_ERROR "Could not find OBS Frontend API's library !")
Expand Down Expand Up @@ -244,12 +235,10 @@ if(WIN32)
)
# --- End of sub-section ---


endif()# -- End of if AZURE


endif()# --- End of win---

endif()
# --- End of section ---
endif()
# -- End of if AZURE

# --- Linux-specific build settings and tasks ---
if(UNIX AND NOT APPLE)
Expand Down Expand Up @@ -280,5 +269,3 @@ if(APPLE)
target_link_libraries(obs-midi "${OBS_FRONTEND_LIB}")
endif()
# -- End of section --


162 changes: 162 additions & 0 deletions azure-testing.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,162 @@
variables:
isReleaseMode: ${{ startsWith(variables['Build.SourceBranch'], 'refs/tags/') }}


trigger:
branches:
include:
- testing
tags:
include:
- '*'

jobs:
- job: 'GenerateDocs'
condition: |
or(
eq(variables['Build.SourceBranch'], 'refs/heads/4.x-current'),
eq(variables['Build.SourceBranch'], 'refs/heads/master')
)
pool:
vmImage: 'ubuntu-18.04'
steps:
- checkout: self
submodules: false

- script: ./CI/generate-docs.sh
displayName: 'Generate docs'
env:
CHECKOUT_REF: $(Build.SourceBranch)
GH_TOKEN: $(GithubToken)

- job: 'Build_Windows'
pool:
vmImage: 'windows-2019'
variables:
build_config: RelWithDebInfo
DepsBasePath: 'D:\obsdependencies'
DepsPath32: '$(DepsBasePath)\win32'
DepsPath64: '$(DepsBasePath)\win64'
QtBaseDir: 'D:\QtDep'
QTDIR32: '$(QtBaseDir)\5.10.1\msvc2017'
QTDIR64: '$(QtBaseDir)\5.10.1\msvc2017_64'
OBSPath: 'D:\obs-studio'
isAzure: 'true'
steps:
- checkout: self
submodules: true
- script: ./CI/install-qt-win.cmd
displayName: 'Install Qt'
env:
QtBaseDir: $(QtBaseDir)
- task: Cache@2
displayName: Restore cached OBS Studio dependencies
inputs:
key: 'obsdeps | "$(Agent.OS)"'
restoreKeys: |
obsdeps | "$(Agent.OS)"
path: $(DepsBasePath)
- script: ./CI/download-obs-deps.cmd
displayName: 'Download OBS Studio dependencies'
- task: Cache@2
displayName: Restore cached OBS Studio builds
inputs:
key: 'obs | "$(Agent.OS)"'
restoreKeys: |
obs | "$(Agent.OS)"
path: $(OBSPath)
- script: ./CI/prepare-obs-windows.cmd
displayName: 'Checkout & CMake OBS Studio'
env:
build_config: $(build_config)
DepsPath32: $(DepsPath32)
DepsPath64: $(DepsPath64)
QTDIR32: $(QTDIR32)
QTDIR64: $(QTDIR64)
OBSPath: $(OBSPath)
isAzure: $(isAzure)
- task: MSBuild@1
displayName: 'Build OBS Studio 32-bit'
inputs:
msbuildArguments: '/m /p:Configuration=$(build_config)'
solution: '$(OBSPath)\build32\obs-studio.sln'
- task: MSBuild@1
displayName: 'Build OBS Studio 64-bit'
inputs:
msbuildArguments: '/m /p:Configuration=$(build_config)'
solution: '$(OBSPath)\build64\obs-studio.sln'
- script: ./CI/prepare-windows.cmd
displayName: 'CMake obs-midi'
env:
build_config: $(build_config)
QTDIR32: $(QTDIR32)
QTDIR64: $(QTDIR64)
OBSPath: $(OBSPath)
isAzure: $(isAzure)
- task: MSBuild@1
displayName: 'Build obs-midi 32-bit'
inputs:
msbuildArguments: '/m /p:Configuration=$(build_config)'
solution: '.\build32\obs-midi.sln'
- task: MSBuild@1
displayName: 'Build obs-midi 64-bit'
inputs:
msbuildArguments: '/m /p:Configuration=$(build_config)'
solution: '.\build64\obs-midi.sln'

- script: ./CI/package-windows.cmd
displayName: 'Package obs-midi'
- task: PublishBuildArtifacts@1
displayName: 'Upload package artifacts'
inputs:
pathtoPublish: './package'
artifactName: 'windows_build'

- job: 'Build_Linux'
pool:
vmImage: 'ubuntu-18.04'
variables:
BUILD_REASON: $(Build.Reason)
BRANCH_SHORT_NAME: $(Build.SourceBranchName)
BRANCH_FULL_NAME: $(Build.SourceBranch)
isAzure: true
steps:
- checkout: self
submodules: true
- script: ./CI/install-dependencies-ubuntu.sh
displayName: 'Install dependencies'
- script: ./CI/build-ubuntu.sh
displayName: 'Build obs-midi'
env:
isAzure: $(isAzure)
- script: ./CI/package-ubuntu.sh
displayName: 'Package obs-midi'
- task: PublishBuildArtifacts@1
inputs:
pathtoPublish: './package'
artifactName: 'deb_build'

- job: 'Build_macOS'
pool:
vmImage: 'macos-10.14'
variables:
isAzure: true
steps:
- checkout: self
submodules: true
- script: ./CI/install-dependencies-macos.sh
displayName: 'Install dependencies'
- script: ./CI/install-build-obs-macos.sh
displayName: 'Build OBS'
- script: ./CI/build-macos.sh
displayName: 'Build obs-midi'
env:
isAzure: $(isAzure)
- script: ./CI/package-macos.sh
displayName: 'Package obs-midi'
env:
RELEASE_MODE: false
- task: PublishBuildArtifacts@1
inputs:
pathtoPublish: './release'
artifactName: 'macos_build'

0 comments on commit 9b46f4f

Please sign in to comment.