mirror of
https://github.com/brunoherbelin/vimix.git
synced 2025-12-14 03:39:57 +01:00
Cleanup source tree
Move all C++ source files in the src subfolder. Adapted the cmake process accordingly and cleanup.
This commit is contained in:
509
CMakeLists.txt
509
CMakeLists.txt
@@ -1,9 +1,15 @@
|
|||||||
|
#####
|
||||||
|
##### This file is part of vimix - video live mixer
|
||||||
|
##### **Copyright** (C) 2019-2022 Bruno Herbelin <bruno.herbelin@gmail.com>
|
||||||
|
#####
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 3.8.2)
|
cmake_minimum_required(VERSION 3.8.2)
|
||||||
project(vimix VERSION 0.0.1 LANGUAGES CXX C)
|
project(vimix VERSION 0.0.1 LANGUAGES CXX C)
|
||||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||||
|
|
||||||
# use git
|
#####
|
||||||
|
##### Use git to read version from tags
|
||||||
|
#####
|
||||||
find_package (Git)
|
find_package (Git)
|
||||||
if(GIT_EXECUTABLE)
|
if(GIT_EXECUTABLE)
|
||||||
execute_process(
|
execute_process(
|
||||||
@@ -26,18 +32,26 @@ if(GIT_EXECUTABLE)
|
|||||||
add_definitions(-DVIMIX_VERSION_MINOR=${VIMIX_VERSION_MINOR})
|
add_definitions(-DVIMIX_VERSION_MINOR=${VIMIX_VERSION_MINOR})
|
||||||
add_definitions(-DVIMIX_VERSION_PATCH=${VIMIX_VERSION_PATCH})
|
add_definitions(-DVIMIX_VERSION_PATCH=${VIMIX_VERSION_PATCH})
|
||||||
message(STATUS "Compiling vimix version ${VIMIX_VERSION_MAJOR}.${VIMIX_VERSION_MINOR}.${VIMIX_VERSION_PATCH}")
|
message(STATUS "Compiling vimix version ${VIMIX_VERSION_MAJOR}.${VIMIX_VERSION_MINOR}.${VIMIX_VERSION_PATCH}")
|
||||||
else()
|
|
||||||
message(STATUS "Compiling vimix (unknown version)")
|
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(CMAKE_INCLUDE_CURRENTDIR ON)
|
|
||||||
|
|
||||||
# Find the cmake modules
|
#####
|
||||||
|
##### Find the cmake modules
|
||||||
|
#####
|
||||||
|
|
||||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} /usr/share/cmake ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules )
|
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} /usr/share/cmake ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules )
|
||||||
include(MacroLogFeature)
|
include(MacroLogFeature)
|
||||||
include(MacroFindGStreamerLibrary)
|
include(MacroFindGStreamerLibrary)
|
||||||
|
|
||||||
|
|
||||||
|
#####
|
||||||
|
##### Configure cmake
|
||||||
|
#####
|
||||||
|
|
||||||
|
set(BUILD_STATIC_LIBS ON)
|
||||||
|
set(CMAKE_INCLUDE_CURRENTDIR ON)
|
||||||
|
|
||||||
if(UNIX)
|
if(UNIX)
|
||||||
if (APPLE)
|
if (APPLE)
|
||||||
add_definitions(-DAPPLE)
|
add_definitions(-DAPPLE)
|
||||||
@@ -48,12 +62,18 @@ if(UNIX)
|
|||||||
set(CMAKE_OSX_ARCHITECTURES "x86_64")
|
set(CMAKE_OSX_ARCHITECTURES "x86_64")
|
||||||
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.14")
|
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.14")
|
||||||
|
|
||||||
|
# CPACK
|
||||||
|
set(CPACK_SYSTEM_NAME "OSX_${CMAKE_OSX_DEPLOYMENT_TARGET}_${CMAKE_OSX_ARCHITECTURES}")
|
||||||
|
|
||||||
# find icu4c in OSX (pretty well hidden...)
|
# find icu4c in OSX (pretty well hidden...)
|
||||||
set(ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_PATH}:/usr/local/opt/icu4c/lib/pkgconfig")
|
set(ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_PATH}:/usr/local/opt/icu4c/lib/pkgconfig")
|
||||||
|
|
||||||
else()
|
else()
|
||||||
add_definitions(-DLINUX)
|
add_definitions(-DLINUX)
|
||||||
|
|
||||||
|
# CPACK
|
||||||
|
set(CPACK_SYSTEM_NAME "${CMAKE_HOST_SYSTEM_NAME}")
|
||||||
|
|
||||||
# linux opengl
|
# linux opengl
|
||||||
set(OpenGL_GL_PREFERENCE "GLVND")
|
set(OpenGL_GL_PREFERENCE "GLVND")
|
||||||
|
|
||||||
@@ -68,29 +88,27 @@ elseif(WIN32)
|
|||||||
add_definitions(-DMINGW32)
|
add_definitions(-DMINGW32)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# static sub packages in ext
|
|
||||||
set(BUILD_STATIC_LIBS ON)
|
|
||||||
|
|
||||||
#####
|
#####
|
||||||
##### Dependencies
|
##### Dependencies
|
||||||
#####
|
#####
|
||||||
|
|
||||||
|
#
|
||||||
# Basics
|
# Basics
|
||||||
|
#
|
||||||
set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
|
set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
|
||||||
find_package(Threads REQUIRED)
|
find_package(Threads REQUIRED)
|
||||||
|
|
||||||
find_package(GLIB2)
|
find_package(ZLIB REQUIRED)
|
||||||
macro_log_feature(GLIB2_FOUND "GLib" "GTK general-purpose utility library" "http://www.gtk.org" TRUE)
|
|
||||||
|
|
||||||
find_package(GObject)
|
|
||||||
macro_log_feature(GOBJECT_FOUND "GObject" "GTK object-oriented framework" "http://www.gtk.org" TRUE)
|
|
||||||
|
|
||||||
find_package(PNG REQUIRED)
|
|
||||||
macro_log_feature(PNG_FOUND "PNG" "Portable Network Graphics" "http://www.libpng.org" TRUE)
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# GSTREAMER
|
# GSTREAMER
|
||||||
#
|
#
|
||||||
|
find_package(GLIB2 REQUIRED)
|
||||||
|
macro_log_feature(GLIB2_FOUND "GLib" "GTK general-purpose utility library" "http://www.gtk.org" TRUE)
|
||||||
|
|
||||||
|
find_package(GObject REQUIRED)
|
||||||
|
macro_log_feature(GOBJECT_FOUND "GObject" "GTK object-oriented framework" "http://www.gtk.org" TRUE)
|
||||||
|
|
||||||
find_package(GStreamer 1.0.0 COMPONENTS base)
|
find_package(GStreamer 1.0.0 COMPONENTS base)
|
||||||
macro_log_feature(GSTREAMER_FOUND "GStreamer"
|
macro_log_feature(GSTREAMER_FOUND "GStreamer"
|
||||||
"Open Source Multiplatform Multimedia Framework"
|
"Open Source Multiplatform Multimedia Framework"
|
||||||
@@ -115,6 +133,17 @@ macro_log_feature(GSTREAMER_GL_LIBRARY_FOUND "GStreamerPluginsBase" "GStreamer o
|
|||||||
# Various preprocessor definitions for GST
|
# Various preprocessor definitions for GST
|
||||||
add_definitions(-DGST_DISABLE_XML -DGST_DISABLE_LOADSAVE)
|
add_definitions(-DGST_DISABLE_XML -DGST_DISABLE_LOADSAVE)
|
||||||
|
|
||||||
|
include_directories(
|
||||||
|
${GLIB2_INCLUDE_DIR}
|
||||||
|
${GSTREAMER_INCLUDE_DIR}
|
||||||
|
${GSTREAMER_AUDIO_INCLUDE_DIR}
|
||||||
|
${GSTREAMER_VIDEO_INCLUDE_DIR}
|
||||||
|
${GSTREAMER_BASE_INCLUDE_DIR}
|
||||||
|
${GSTREAMER_APP_INCLUDE_DIR}
|
||||||
|
${GSTREAMER_PBUTILS_INCLUDE_DIR}
|
||||||
|
${GSTREAMER_GL_INCLUDE_DIR}
|
||||||
|
)
|
||||||
|
|
||||||
#
|
#
|
||||||
# ICU4C
|
# ICU4C
|
||||||
#
|
#
|
||||||
@@ -123,8 +152,17 @@ if (PKG_CONFIG_FOUND)
|
|||||||
else ()
|
else ()
|
||||||
find_package(ICU REQUIRED COMPONENTS i18n io uc)
|
find_package(ICU REQUIRED COMPONENTS i18n io uc)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
macro_log_feature(ICU_FOUND "ICU" "International Components for Unicode" "http://site.icu-project.org" TRUE)
|
macro_log_feature(ICU_FOUND "ICU" "International Components for Unicode" "http://site.icu-project.org" TRUE)
|
||||||
|
|
||||||
|
include_directories(
|
||||||
|
${ICU_INCLUDE_DIRS}
|
||||||
|
)
|
||||||
|
|
||||||
|
link_directories(
|
||||||
|
${ICU_LIBRARY_DIRS}
|
||||||
|
)
|
||||||
|
|
||||||
#
|
#
|
||||||
# GLFW3
|
# GLFW3
|
||||||
#
|
#
|
||||||
@@ -133,15 +171,24 @@ if (PKG_CONFIG_FOUND)
|
|||||||
else ()
|
else ()
|
||||||
find_package(glfw3 3.2 REQUIRED)
|
find_package(glfw3 3.2 REQUIRED)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
macro_log_feature(GLFW3_FOUND "glfw3" "Open Source multi-platform library for OpenGL" "http://www.glfw.org" TRUE)
|
macro_log_feature(GLFW3_FOUND "glfw3" "Open Source multi-platform library for OpenGL" "http://www.glfw.org" TRUE)
|
||||||
|
|
||||||
|
include_directories(
|
||||||
|
${GLFW3_INCLUDE_DIRS}
|
||||||
|
)
|
||||||
|
|
||||||
|
link_directories(
|
||||||
|
${GLFW3_LIBRARY_DIRS}
|
||||||
|
)
|
||||||
|
|
||||||
#
|
#
|
||||||
# GLM
|
# GLM
|
||||||
#
|
#
|
||||||
if (PKG_CONFIG_FOUND)
|
if (PKG_CONFIG_FOUND)
|
||||||
pkg_check_modules(GLM QUIET glm>=0.9.9)
|
pkg_check_modules(GLM QUIET glm>=0.9.9)
|
||||||
else ()
|
else ()
|
||||||
find_package(glm QUIET)
|
find_package(glm 0.9.9 QUIET)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (GLM_FOUND)
|
if (GLM_FOUND)
|
||||||
@@ -152,13 +199,17 @@ else ()
|
|||||||
message(STATUS "Compiling 'GLM' OpenGL mathematics https://glm.g-truc.net -- ${CMAKE_CURRENT_SOURCE_DIR}/ext/glm")
|
message(STATUS "Compiling 'GLM' OpenGL mathematics https://glm.g-truc.net -- ${CMAKE_CURRENT_SOURCE_DIR}/ext/glm")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
include_directories(
|
||||||
|
${GLM_INCLUDE_DIRS}
|
||||||
|
)
|
||||||
|
|
||||||
#
|
#
|
||||||
# TINY XML 2
|
# TINY XML 2
|
||||||
#
|
#
|
||||||
if (PKG_CONFIG_FOUND)
|
if (PKG_CONFIG_FOUND)
|
||||||
pkg_check_modules(TINYXML2 QUIET tinyxml2>=8.0)
|
pkg_check_modules(TINYXML2 QUIET tinyxml2>=8.0)
|
||||||
else ()
|
else ()
|
||||||
find_package(tinyxml2 QUIET)
|
find_package(tinyxml2 8.0 QUIET)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (TINYXML2_FOUND)
|
if (TINYXML2_FOUND)
|
||||||
@@ -170,6 +221,10 @@ else ()
|
|||||||
message(STATUS "Compiling 'TinyXML2' from https://github.com/leethomason/tinyxml2.git -- ${TINYXML2_INCLUDE_DIRS}")
|
message(STATUS "Compiling 'TinyXML2' from https://github.com/leethomason/tinyxml2.git -- ${TINYXML2_INCLUDE_DIRS}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
include_directories(
|
||||||
|
${TINYXML2_INCLUDE_DIRS}
|
||||||
|
)
|
||||||
|
|
||||||
#
|
#
|
||||||
# STB
|
# STB
|
||||||
#
|
#
|
||||||
@@ -186,6 +241,10 @@ else ()
|
|||||||
message(STATUS "Including 'STB' single-file image and audio processing from https://github.com/nothings/stb -- ${STB_INCLUDE_DIRS}")
|
message(STATUS "Including 'STB' single-file image and audio processing from https://github.com/nothings/stb -- ${STB_INCLUDE_DIRS}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
include_directories(
|
||||||
|
${STB_INCLUDE_DIRS}
|
||||||
|
)
|
||||||
|
|
||||||
#
|
#
|
||||||
# Ableton LINK
|
# Ableton LINK
|
||||||
#
|
#
|
||||||
@@ -198,46 +257,62 @@ else ()
|
|||||||
message(STATUS "Compiling 'Ableton Link' from https://github.com/Ableton/link -- ${CMAKE_CURRENT_SOURCE_DIR}/ext/link")
|
message(STATUS "Compiling 'Ableton Link' from https://github.com/Ableton/link -- ${CMAKE_CURRENT_SOURCE_DIR}/ext/link")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
include_directories(
|
||||||
|
${link_HEADERS}
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# FILE DIALOG: use tinyfiledialog for all except Linux
|
# FILE DIALOG: use tinyfiledialog for all except Linux
|
||||||
#
|
#
|
||||||
if(UNIX)
|
if(APPLE OR WIN32)
|
||||||
if (APPLE)
|
set(TINYFD_LIBRARIES TINYFD)
|
||||||
set(TINYFD_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/ext/tfd)
|
|
||||||
add_library(TINYFD "${CMAKE_CURRENT_SOURCE_DIR}/ext/tfd/tinyfiledialogs.c")
|
|
||||||
message(STATUS "Compiling 'TinyFileDialog' from https://git.code.sf.net/p/tinyfiledialogs/code -- ${TINYFD_INCLUDE_DIR}.")
|
|
||||||
set(TINYFD_LIBRARY TINYFD)
|
|
||||||
endif()
|
|
||||||
else()
|
|
||||||
set(TINYFD_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/ext/tfd)
|
set(TINYFD_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/ext/tfd)
|
||||||
|
include_directories(
|
||||||
|
${TINYFD_INCLUDE_DIR}
|
||||||
|
)
|
||||||
add_library(TINYFD "${CMAKE_CURRENT_SOURCE_DIR}/ext/tfd/tinyfiledialogs.c")
|
add_library(TINYFD "${CMAKE_CURRENT_SOURCE_DIR}/ext/tfd/tinyfiledialogs.c")
|
||||||
message(STATUS "Compiling 'TinyFileDialog' from https://git.code.sf.net/p/tinyfiledialogs/code -- ${TINYFD_INCLUDE_DIR}.")
|
message(STATUS "Compiling 'TinyFileDialog' from https://git.code.sf.net/p/tinyfiledialogs/code -- ${TINYFD_INCLUDE_DIR}.")
|
||||||
set(TINYFD_LIBRARY TINYFD)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
#
|
#
|
||||||
# DIRENT (windows only)
|
# DIRENT (windows only)
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
set(DIRENT_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/ext/Dirent/include)
|
set(DIRENT_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/ext/Dirent/include)
|
||||||
|
include_directories(
|
||||||
|
${DIRENT_INCLUDE_DIR}
|
||||||
|
)
|
||||||
message(STATUS "Including 'Dirent' from https://github.com/tronkko/dirent -- ${DIRENT_INCLUDE_DIR}.")
|
message(STATUS "Including 'Dirent' from https://github.com/tronkko/dirent -- ${DIRENT_INCLUDE_DIR}.")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# show message about found libs
|
||||||
|
macro_display_feature_log()
|
||||||
|
|
||||||
#####
|
#####
|
||||||
##### Custom built libraries
|
##### Locally built libraries
|
||||||
#####
|
#####
|
||||||
|
|
||||||
#
|
#
|
||||||
# GLAD
|
# GLAD
|
||||||
#
|
#
|
||||||
|
set(GLAD_LIBRARIES GLAD)
|
||||||
set(GLAD_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/ext/glad/include)
|
set(GLAD_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/ext/glad/include)
|
||||||
|
include_directories(
|
||||||
|
${GLAD_INCLUDE_DIRS}
|
||||||
|
)
|
||||||
add_library(GLAD "${CMAKE_CURRENT_SOURCE_DIR}/ext/glad/src/glad.c")
|
add_library(GLAD "${CMAKE_CURRENT_SOURCE_DIR}/ext/glad/src/glad.c")
|
||||||
message(STATUS "Including 'GLAD' Open source multi-language OpenGL loader https://glad.dav1d.de -- ${GLAD_INCLUDE_DIRS}")
|
message(STATUS "Including 'GLAD' Open source multi-language OpenGL loader https://glad.dav1d.de -- ${GLAD_INCLUDE_DIRS}")
|
||||||
|
|
||||||
#
|
#
|
||||||
# DEAR IMGUI
|
# DEAR IMGUI
|
||||||
#
|
#
|
||||||
|
set(IMGUI_LIBRARIES IMGUI IMGUITEXTEDIT)
|
||||||
set(IMGUI_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/ext/imgui)
|
set(IMGUI_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/ext/imgui)
|
||||||
set(IMGUI_BACKEND_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/ext/imgui/examples)
|
set(IMGUI_BACKEND_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/ext/imgui/examples)
|
||||||
|
include_directories(
|
||||||
|
${IMGUI_INCLUDE_DIRS}
|
||||||
|
${IMGUI_BACKEND_INCLUDE_DIRS}
|
||||||
|
)
|
||||||
set(IMGUI_SRCS
|
set(IMGUI_SRCS
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/ext/imgui/imgui.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/ext/imgui/imgui.cpp
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/ext/imgui//imgui_demo.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/ext/imgui//imgui_demo.cpp
|
||||||
@@ -249,9 +324,18 @@ set(IMGUI_SRCS
|
|||||||
add_library(IMGUI "${IMGUI_SRCS}")
|
add_library(IMGUI "${IMGUI_SRCS}")
|
||||||
target_compile_definitions(IMGUI PRIVATE "IMGUI_IMPL_OPENGL_LOADER_GLAD")
|
target_compile_definitions(IMGUI PRIVATE "IMGUI_IMPL_OPENGL_LOADER_GLAD")
|
||||||
target_compile_definitions(IMGUI PRIVATE "IMGUI_USE_STB_SPRINTF")
|
target_compile_definitions(IMGUI PRIVATE "IMGUI_USE_STB_SPRINTF")
|
||||||
set(IMGUI_LIBRARIES IMGUI)
|
|
||||||
message(STATUS "Compiling 'Dear ImGui' from https://github.com/ocornut/imgui.git -- ${IMGUI_INCLUDE_DIRS}")
|
message(STATUS "Compiling 'Dear ImGui' from https://github.com/ocornut/imgui.git -- ${IMGUI_INCLUDE_DIRS}")
|
||||||
|
|
||||||
|
#
|
||||||
|
# ImGui Color Text Editor
|
||||||
|
#
|
||||||
|
set(IMGUITEXTEDIT_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/ext/ImGuiColorTextEdit)
|
||||||
|
include_directories(
|
||||||
|
${IMGUITEXTEDIT_INCLUDE_DIR}
|
||||||
|
)
|
||||||
|
add_library(IMGUITEXTEDIT "${CMAKE_CURRENT_SOURCE_DIR}/ext/ImGuiColorTextEdit/TextEditor.cpp")
|
||||||
|
message(STATUS "Compiling 'ImGuiColorTextEdit' from https://github.com/BalazsJako/ImGuiColorTextEdit -- ${IMGUITEXTEDIT_INCLUDE_DIR}")
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# OSCPack
|
# OSCPack
|
||||||
@@ -270,29 +354,29 @@ set(OSCPACK_SRCS
|
|||||||
${OSCPACK_PLATFORM_DIR}/NetworkingUtils.cpp
|
${OSCPACK_PLATFORM_DIR}/NetworkingUtils.cpp
|
||||||
${OSCPACK_PLATFORM_DIR}/UdpSocket.cpp
|
${OSCPACK_PLATFORM_DIR}/UdpSocket.cpp
|
||||||
)
|
)
|
||||||
|
set(OSCPACK_LIBRARIES OSCPACK)
|
||||||
set(OSCPACK_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/ext/OSCPack)
|
set(OSCPACK_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/ext/OSCPack)
|
||||||
|
include_directories(
|
||||||
|
${OSCPACK_INCLUDE_DIR}
|
||||||
|
)
|
||||||
add_library(OSCPACK "${OSCPACK_SRCS}")
|
add_library(OSCPACK "${OSCPACK_SRCS}")
|
||||||
message(STATUS "Compiling 'OSCPack' from http://www.rossbencina.com/code/oscpack -- ${OSCPACK_INCLUDE_DIR}")
|
message(STATUS "Compiling 'OSCPack' from http://www.rossbencina.com/code/oscpack -- ${OSCPACK_INCLUDE_DIR}")
|
||||||
|
|
||||||
#
|
|
||||||
# ImGui Color Text Editor
|
|
||||||
#
|
|
||||||
set(IMGUITEXTEDIT_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/ext/ImGuiColorTextEdit)
|
|
||||||
set(IMGUITEXTEDIT_SRC
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/ext/ImGuiColorTextEdit/TextEditor.cpp
|
|
||||||
)
|
|
||||||
message(STATUS "Including 'ImGuiColorTextEdit' from https://github.com/BalazsJako/ImGuiColorTextEdit -- ${IMGUITEXTEDIT_INCLUDE_DIR}")
|
|
||||||
|
|
||||||
##
|
#####
|
||||||
## Fonts
|
##### Ressources
|
||||||
##
|
#####
|
||||||
|
|
||||||
|
#
|
||||||
|
# Fonts
|
||||||
|
#
|
||||||
|
|
||||||
file(GLOB_RECURSE ROBOTO_REGULAR RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "Roboto-Regular.ttf")
|
file(GLOB_RECURSE ROBOTO_REGULAR RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "Roboto-Regular.ttf")
|
||||||
if(NOT ROBOTO_REGULAR)
|
if(NOT ROBOTO_REGULAR)
|
||||||
file(GLOB_RECURSE ROBOTO_REGULAR "/usr/share/fonts/*/Roboto-Regular.ttf")
|
file(GLOB_RECURSE ROBOTO_REGULAR "/usr/share/fonts/*/Roboto-Regular.ttf")
|
||||||
message(STATUS "Copy ${ROBOTO_REGULAR} to ${CMAKE_CURRENT_SOURCE_DIR}/rsc/fonts")
|
message(STATUS "Copy ${ROBOTO_REGULAR} to ${CMAKE_CURRENT_SOURCE_DIR}/rsc/fonts")
|
||||||
file(COPY ${ROBOTO_REGULAR} DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/rsc/fonts)
|
file(COPY ${ROBOTO_REGULAR} DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/rsc/fonts)
|
||||||
set(ROBOTO_REGULAR "./rsc/fonts/Roboto-Regular.ttf")
|
set(ROBOTO_REGULAR ${CMAKE_SOURCE_DIR}"/rsc/fonts/Roboto-Regular.ttf")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
file(GLOB_RECURSE ROBOTO_BOLD RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "Roboto-Bold.ttf")
|
file(GLOB_RECURSE ROBOTO_BOLD RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "Roboto-Bold.ttf")
|
||||||
@@ -300,7 +384,7 @@ if(NOT ROBOTO_BOLD)
|
|||||||
file(GLOB_RECURSE ROBOTO_BOLD "/usr/share/fonts/*/Roboto-Bold.ttf")
|
file(GLOB_RECURSE ROBOTO_BOLD "/usr/share/fonts/*/Roboto-Bold.ttf")
|
||||||
message(STATUS "Copy ${ROBOTO_BOLD} to ${CMAKE_CURRENT_SOURCE_DIR}/rsc/fonts")
|
message(STATUS "Copy ${ROBOTO_BOLD} to ${CMAKE_CURRENT_SOURCE_DIR}/rsc/fonts")
|
||||||
file(COPY ${ROBOTO_BOLD} DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/rsc/fonts)
|
file(COPY ${ROBOTO_BOLD} DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/rsc/fonts)
|
||||||
set(ROBOTO_BOLD "./rsc/fonts/Roboto-Bold.ttf")
|
set(ROBOTO_BOLD ${CMAKE_CURRENT_SOURCE_DIR}"/rsc/fonts/Roboto-Bold.ttf")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
file(GLOB_RECURSE ROBOTO_ITALIC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "Roboto-Italic.ttf")
|
file(GLOB_RECURSE ROBOTO_ITALIC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "Roboto-Italic.ttf")
|
||||||
@@ -308,15 +392,15 @@ if(NOT ROBOTO_ITALIC)
|
|||||||
file(GLOB_RECURSE ROBOTO_ITALIC "/usr/share/fonts/*/Roboto-Italic.ttf")
|
file(GLOB_RECURSE ROBOTO_ITALIC "/usr/share/fonts/*/Roboto-Italic.ttf")
|
||||||
message(STATUS "Copy ${ROBOTO_ITALIC} to ${CMAKE_CURRENT_SOURCE_DIR}/rsc/fonts")
|
message(STATUS "Copy ${ROBOTO_ITALIC} to ${CMAKE_CURRENT_SOURCE_DIR}/rsc/fonts")
|
||||||
file(COPY ${ROBOTO_ITALIC} DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/rsc/fonts)
|
file(COPY ${ROBOTO_ITALIC} DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/rsc/fonts)
|
||||||
set(ROBOTO_ITALIC "./rsc/fonts/Roboto-Italic.ttf")
|
set(ROBOTO_ITALIC ${CMAKE_CURRENT_SOURCE_DIR}"/rsc/fonts/Roboto-Italic.ttf")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
file(GLOB_RECURSE HACK_REGULAR RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "Hack-Regular.ttf")
|
file(GLOB_RECURSE HACK_REGULAR RELATIVE ${CMAKE_SOURCE_DIR} "Hack-Regular.ttf")
|
||||||
if(NOT HACK_REGULAR)
|
if(NOT HACK_REGULAR)
|
||||||
file(GLOB_RECURSE HACK_REGULAR "/usr/share/fonts/*/Hack-Regular.ttf")
|
file(GLOB_RECURSE HACK_REGULAR "/usr/share/fonts/*/Hack-Regular.ttf")
|
||||||
message(STATUS "Copy ${HACK_REGULAR} to ${CMAKE_CURRENT_SOURCE_DIR}/rsc/fonts")
|
message(STATUS "Copy ${HACK_REGULAR} to ${CMAKE_CURRENT_SOURCE_DIR}/rsc/fonts")
|
||||||
file(COPY ${HACK_REGULAR} DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/rsc/fonts)
|
file(COPY ${HACK_REGULAR} DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/rsc/fonts)
|
||||||
set(HACK_REGULAR "./rsc/fonts/Hack-Regular.ttf")
|
set(HACK_REGULAR "${CMAKE_SOURCE_DIR}/../rsc/fonts/Hack-Regular.ttf")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
file(GLOB_RECURSE AWESOME_SOLID RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "fa-solid-900.ttf")
|
file(GLOB_RECURSE AWESOME_SOLID RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "fa-solid-900.ttf")
|
||||||
@@ -324,7 +408,7 @@ if(NOT AWESOME_SOLID)
|
|||||||
file(GLOB_RECURSE AWESOME_SOLID "/usr/share/fonts/*/fa-solid-900.ttf")
|
file(GLOB_RECURSE AWESOME_SOLID "/usr/share/fonts/*/fa-solid-900.ttf")
|
||||||
message(STATUS "Copy ${AWESOME_SOLID} to ${CMAKE_CURRENT_SOURCE_DIR}/rsc/fonts")
|
message(STATUS "Copy ${AWESOME_SOLID} to ${CMAKE_CURRENT_SOURCE_DIR}/rsc/fonts")
|
||||||
file(COPY ${AWESOME_SOLID} DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/rsc/fonts)
|
file(COPY ${AWESOME_SOLID} DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/rsc/fonts)
|
||||||
set(AWESOME_SOLID "./rsc/fonts/fa-solid-900.ttf")
|
set(AWESOME_SOLID ${CMAKE_CURRENT_SOURCE_DIR}"/rsc/fonts/fa-solid-900.ttf")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
@@ -333,128 +417,23 @@ if(NOT AWESOME_REGULAR)
|
|||||||
file(GLOB_RECURSE AWESOME_REGULAR "/usr/share/fonts/*/fa-regular-400.ttf")
|
file(GLOB_RECURSE AWESOME_REGULAR "/usr/share/fonts/*/fa-regular-400.ttf")
|
||||||
message(STATUS "Copy ${AWESOME_REGULAR} to ${CMAKE_CURRENT_SOURCE_DIR}/rsc/fonts")
|
message(STATUS "Copy ${AWESOME_REGULAR} to ${CMAKE_CURRENT_SOURCE_DIR}/rsc/fonts")
|
||||||
file(COPY ${AWESOME_REGULAR} DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/rsc/fonts)
|
file(COPY ${AWESOME_REGULAR} DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/rsc/fonts)
|
||||||
set(AWESOME_REGULAR "./rsc/fonts/fa-regular-400.ttf")
|
set(AWESOME_REGULAR "../rsc/fonts/fa-regular-400.ttf")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# All done
|
|
||||||
macro_display_feature_log()
|
|
||||||
|
|
||||||
#####
|
|
||||||
##### Application
|
|
||||||
#####
|
|
||||||
|
|
||||||
# Setup the environment
|
|
||||||
include_directories(
|
include_directories(
|
||||||
${GSTREAMER_INCLUDE_DIR}
|
"${CMAKE_CURRENT_SOURCE_DIR}/rsc/fonts"
|
||||||
${GSTREAMER_AUDIO_INCLUDE_DIR}
|
|
||||||
${GSTREAMER_VIDEO_INCLUDE_DIR}
|
|
||||||
${GSTREAMER_BASE_INCLUDE_DIR}
|
|
||||||
${GSTREAMER_APP_INCLUDE_DIR}
|
|
||||||
${GSTREAMER_PBUTILS_INCLUDE_DIR}
|
|
||||||
${GSTREAMER_GL_INCLUDE_DIR}
|
|
||||||
${GLFW3_INCLUDE_DIRS}
|
|
||||||
${ICU_INCLUDE_DIRS}
|
|
||||||
${GLM_INCLUDE_DIRS}
|
|
||||||
${GLIB2_INCLUDE_DIR}
|
|
||||||
${GLAD_INCLUDE_DIRS}
|
|
||||||
${IMGUI_INCLUDE_DIRS}
|
|
||||||
${IMGUI_BACKEND_INCLUDE_DIRS}
|
|
||||||
${IMGUITEXTEDIT_INCLUDE_DIR}
|
|
||||||
${TINYXML2_INCLUDE_DIRS}
|
|
||||||
${TINYFD_INCLUDE_DIR}
|
|
||||||
${STB_INCLUDE_DIRS}
|
|
||||||
${DIRENT_INCLUDE_DIR}
|
|
||||||
${OSCPACK_INCLUDE_DIR}
|
|
||||||
${link_HEADERS}
|
|
||||||
)
|
|
||||||
|
|
||||||
link_directories(
|
|
||||||
${GLFW3_LIBRARY_DIRS}
|
|
||||||
${ICU_LIBRARY_DIRS}
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
set(VMIX_BINARY "vimix")
|
#
|
||||||
set(VMIX_SRCS
|
# CMake RC module
|
||||||
main.cpp
|
#
|
||||||
Log.cpp
|
|
||||||
BaseToolkit.cpp
|
|
||||||
Shader.cpp
|
|
||||||
ImageShader.cpp
|
|
||||||
ImageProcessingShader.cpp
|
|
||||||
UpdateCallback.cpp
|
|
||||||
Scene.cpp
|
|
||||||
Primitives.cpp
|
|
||||||
Mesh.cpp
|
|
||||||
Decorations.cpp
|
|
||||||
View.cpp
|
|
||||||
RenderView.cpp
|
|
||||||
GeometryView.cpp
|
|
||||||
MixingView.cpp
|
|
||||||
MixingGroup.cpp
|
|
||||||
LayerView.cpp
|
|
||||||
TextureView.cpp
|
|
||||||
TransitionView.cpp
|
|
||||||
Source.cpp
|
|
||||||
CloneSource.cpp
|
|
||||||
RenderSource.cpp
|
|
||||||
SourceCallback.cpp
|
|
||||||
SourceList.cpp
|
|
||||||
Session.cpp
|
|
||||||
Selection.cpp
|
|
||||||
SessionSource.cpp
|
|
||||||
SessionVisitor.cpp
|
|
||||||
Interpolator.cpp
|
|
||||||
SessionCreator.cpp
|
|
||||||
SessionParser.cpp
|
|
||||||
Mixer.cpp
|
|
||||||
FrameGrabber.cpp
|
|
||||||
Recorder.cpp
|
|
||||||
Streamer.cpp
|
|
||||||
Loopback.cpp
|
|
||||||
Settings.cpp
|
|
||||||
Screenshot.cpp
|
|
||||||
Resource.cpp
|
|
||||||
Timeline.cpp
|
|
||||||
Stream.cpp
|
|
||||||
MediaPlayer.cpp
|
|
||||||
MediaSource.cpp
|
|
||||||
StreamSource.cpp
|
|
||||||
PatternSource.cpp
|
|
||||||
DeviceSource.cpp
|
|
||||||
NetworkSource.cpp
|
|
||||||
MultiFileSource.cpp
|
|
||||||
FrameBuffer.cpp
|
|
||||||
FrameBufferFilter.cpp
|
|
||||||
ImageFilter.cpp
|
|
||||||
DelayFilter.cpp
|
|
||||||
RenderingManager.cpp
|
|
||||||
UserInterfaceManager.cpp
|
|
||||||
PickingVisitor.cpp
|
|
||||||
BoundingBoxVisitor.cpp
|
|
||||||
DrawVisitor.cpp
|
|
||||||
SearchVisitor.cpp
|
|
||||||
ImGuiToolkit.cpp
|
|
||||||
ImGuiVisitor.cpp
|
|
||||||
InfoVisitor.cpp
|
|
||||||
CountVisitor.cpp
|
|
||||||
GstToolkit.cpp
|
|
||||||
GlmToolkit.cpp
|
|
||||||
SystemToolkit.cpp
|
|
||||||
DialogToolkit.cpp
|
|
||||||
tinyxml2Toolkit.cpp
|
|
||||||
NetworkToolkit.cpp
|
|
||||||
Connection.cpp
|
|
||||||
ActionManager.cpp
|
|
||||||
Overlay.cpp
|
|
||||||
Metronome.cpp
|
|
||||||
ControlManager.cpp
|
|
||||||
VideoBroadcast.cpp
|
|
||||||
SrtReceiverSource.cpp
|
|
||||||
MultiFileRecorder.cpp
|
|
||||||
)
|
|
||||||
|
|
||||||
|
# Include the CMake RC module
|
||||||
|
include(CMakeRC)
|
||||||
|
message(STATUS "Using 'CMakeRC ' from https://github.com/vector-of-bool/cmrc.git -- ${CMAKE_MODULE_PATH}.")
|
||||||
|
|
||||||
|
# set the files to package
|
||||||
set(VMIX_RSC_FILES
|
set(VMIX_RSC_FILES
|
||||||
${HACK_REGULAR}
|
${HACK_REGULAR}
|
||||||
${ROBOTO_REGULAR}
|
${ROBOTO_REGULAR}
|
||||||
@@ -559,7 +538,7 @@ set(VMIX_RSC_FILES
|
|||||||
./rsc/mesh/icon_sequence.ply
|
./rsc/mesh/icon_sequence.ply
|
||||||
./rsc/mesh/icon_receive.ply
|
./rsc/mesh/icon_receive.ply
|
||||||
./rsc/mesh/h_line.ply
|
./rsc/mesh/h_line.ply
|
||||||
./rsc/mesh/h_mark.ply
|
./rsc/mesh/h_mark.ply
|
||||||
./rsc/shaders/filters/default.glsl
|
./rsc/shaders/filters/default.glsl
|
||||||
./rsc/shaders/filters/bloom.glsl
|
./rsc/shaders/filters/bloom.glsl
|
||||||
./rsc/shaders/filters/bokeh.glsl
|
./rsc/shaders/filters/bokeh.glsl
|
||||||
@@ -606,86 +585,12 @@ set(VMIX_RSC_FILES
|
|||||||
./rsc/shaders/filters/logo.glsl
|
./rsc/shaders/filters/logo.glsl
|
||||||
)
|
)
|
||||||
|
|
||||||
# Include the CMake RC module
|
|
||||||
include(CMakeRC)
|
|
||||||
cmrc_add_resource_library(vmix-resources ALIAS vmix::rc NAMESPACE vmix WHENCE rsc ${VMIX_RSC_FILES})
|
cmrc_add_resource_library(vmix-resources ALIAS vmix::rc NAMESPACE vmix WHENCE rsc ${VMIX_RSC_FILES})
|
||||||
message(STATUS "Using 'CMakeRC ' from https://github.com/vector-of-bool/cmrc.git -- ${CMAKE_MODULE_PATH}.")
|
|
||||||
|
|
||||||
### DEFINE THE TARGET (OS specific)
|
|
||||||
|
|
||||||
IF(APPLE)
|
|
||||||
|
|
||||||
# set icon
|
|
||||||
set(MACOSX_BUNDLE_ICON vimix.icns)
|
|
||||||
set(MACOSX_BUNDLE_ICON_FILE ${CMAKE_SOURCE_DIR}/osx/${MACOSX_BUNDLE_ICON})
|
|
||||||
# set where in the bundle to put the icns file
|
|
||||||
set_source_files_properties(${MACOSX_BUNDLE_ICON_FILE} PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
|
|
||||||
|
|
||||||
# create the application
|
|
||||||
add_executable(${VMIX_BINARY} MACOSX_BUNDLE
|
|
||||||
${VMIX_SRCS}
|
|
||||||
${IMGUITEXTEDIT_SRC}
|
|
||||||
${MACOSX_BUNDLE_ICON_FILE}
|
|
||||||
)
|
|
||||||
|
|
||||||
# set the Info.plist file
|
|
||||||
set(MACOSX_BUNDLE_PLIST_FILE ${CMAKE_SOURCE_DIR}/osx/Info.plist)
|
|
||||||
set_target_properties(${VMIX_BINARY} PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${MACOSX_BUNDLE_PLIST_FILE})
|
|
||||||
|
|
||||||
set(PLATFORM_LIBS
|
|
||||||
"-framework CoreFoundation"
|
|
||||||
"-framework Appkit"
|
|
||||||
)
|
|
||||||
|
|
||||||
ELSE(APPLE)
|
|
||||||
|
|
||||||
link_directories (${GTK3_LIBRARY_DIRS})
|
|
||||||
|
|
||||||
add_executable(${VMIX_BINARY}
|
|
||||||
${VMIX_SRCS}
|
|
||||||
${IMGUITEXTEDIT_SRC}
|
|
||||||
)
|
|
||||||
|
|
||||||
set(PLATFORM_LIBS
|
|
||||||
GTK::GTK
|
|
||||||
)
|
|
||||||
|
|
||||||
ENDIF(APPLE)
|
|
||||||
|
|
||||||
### COMPILE THE TARGET (all OS)
|
|
||||||
|
|
||||||
set_property(TARGET ${VMIX_BINARY} PROPERTY CXX_STANDARD 17)
|
|
||||||
set_property(TARGET ${VMIX_BINARY} PROPERTY C_STANDARD 11)
|
|
||||||
|
|
||||||
target_compile_definitions(${VMIX_BINARY} PUBLIC "IMGUI_IMPL_OPENGL_LOADER_GLAD")
|
|
||||||
|
|
||||||
target_link_libraries(${VMIX_BINARY} LINK_PRIVATE
|
|
||||||
vmix::rc
|
|
||||||
${GLM_LIBRARIES}
|
|
||||||
GLAD
|
|
||||||
OSCPACK
|
|
||||||
${IMGUI_LIBRARIES}
|
|
||||||
${TINYFD_LIBRARY}
|
|
||||||
${GLFW3_LIBRARIES}
|
|
||||||
${TINYXML2_LIBRARIES}
|
|
||||||
${ICU_LIBRARIES}
|
|
||||||
${CMAKE_DL_LIBS}
|
|
||||||
${GOBJECT_LIBRARIES}
|
|
||||||
${GSTREAMER_LIBRARY}
|
|
||||||
${GSTREAMER_BASE_LIBRARY}
|
|
||||||
${GSTREAMER_APP_LIBRARY}
|
|
||||||
${GSTREAMER_AUDIO_LIBRARY}
|
|
||||||
${GSTREAMER_VIDEO_LIBRARY}
|
|
||||||
${GSTREAMER_PBUTILS_LIBRARY}
|
|
||||||
${GSTREAMER_GL_LIBRARY}
|
|
||||||
Threads::Threads
|
|
||||||
PNG::PNG
|
|
||||||
Ableton::Link
|
|
||||||
${PLATFORM_LIBS}
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
### DEFINE THE PACKAGING (all OS)
|
#####
|
||||||
|
##### DEFINE THE PACKAGING (all OS)
|
||||||
|
#####
|
||||||
|
|
||||||
SET(CPACK_PACKAGE_NAME "vimix")
|
SET(CPACK_PACKAGE_NAME "vimix")
|
||||||
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "vimix\nReal-time video mixing for live performance.")
|
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "vimix\nReal-time video mixing for live performance.")
|
||||||
@@ -702,127 +607,15 @@ SET(CPACK_SOURCE_IGNORE_FILES
|
|||||||
"/\\\\.gitignore$"
|
"/\\\\.gitignore$"
|
||||||
"/\\\\.gitmodules$"
|
"/\\\\.gitmodules$"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
# optimize size ?
|
|
||||||
SET(CPACK_STRIP_FILES TRUE)
|
|
||||||
|
|
||||||
### DEFINE THE PACKAGING (OS specific)
|
|
||||||
|
|
||||||
IF(APPLE)
|
|
||||||
|
|
||||||
# Bundle target
|
|
||||||
set(CPACK_GENERATOR DragNDrop)
|
|
||||||
set(CPACK_BINARY_DRAGNDROP ON)
|
|
||||||
|
|
||||||
# OSX cpack info
|
|
||||||
set(CPACK_SYSTEM_NAME "OSX_${CMAKE_OSX_DEPLOYMENT_TARGET}_${CMAKE_OSX_ARCHITECTURES}")
|
|
||||||
|
|
||||||
install(TARGETS ${VMIX_BINARY}
|
|
||||||
CONFIGURATIONS Release RelWithDebInfo
|
|
||||||
BUNDLE DESTINATION . COMPONENT Runtime
|
|
||||||
RUNTIME DESTINATION bin COMPONENT Runtime
|
|
||||||
)
|
|
||||||
|
|
||||||
# create GST plugins directory in Bundle Resources subfolder
|
|
||||||
set(plugin_dest_dir vimix.app/Contents/Resources/)
|
|
||||||
|
|
||||||
### TODO configure auto to find installation dir of gst
|
|
||||||
|
|
||||||
message(STATUS "install gst-plugins ${PKG_GSTREAMER_PLUGIN_DIR}")
|
|
||||||
message(STATUS "install gst-plugins-base ${PKG_GSTREAMER_BASE_PLUGIN_DIR}")
|
|
||||||
|
|
||||||
if (PKG_CONFIG_FOUND)
|
|
||||||
pkg_check_modules(PKG_GSTREAMER_PLUGINS_BAD gstreamer-plugins-bad-${GSTREAMER_ABI_VERSION})
|
|
||||||
set(PKG_GSTREAMER_BAD_PLUGIN_DIR ${PKG_GSTREAMER_PLUGINS_BAD_LIBDIR}/gstreamer-${GSTREAMER_ABI_VERSION})
|
|
||||||
message(STATUS "install gst-plugins-bad ${PKG_GSTREAMER_BAD_PLUGIN_DIR}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
|
|
||||||
# intall the gst-plugin-scanner program (used by plugins at load time)
|
|
||||||
set(PKG_GSTREAMER_SCANNER "${PKG_GSTREAMER_PREFIX}/libexec/gstreamer-1.0/gst-plugin-scanner")
|
|
||||||
message(STATUS "install gst-plugin-scanner ${PKG_GSTREAMER_SCANNER}")
|
|
||||||
install(FILES "${PKG_GSTREAMER_SCANNER}"
|
|
||||||
DESTINATION "${plugin_dest_dir}"
|
|
||||||
PERMISSIONS OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
|
|
||||||
COMPONENT Runtime
|
|
||||||
)
|
|
||||||
|
|
||||||
# Install the gst-plugins (all those installed with brew )
|
|
||||||
install(DIRECTORY "${PKG_GSTREAMER_PLUGIN_DIR}" DESTINATION "${plugin_dest_dir}" COMPONENT Runtime)
|
|
||||||
install(DIRECTORY "${PKG_GSTREAMER_BASE_PLUGIN_DIR}" DESTINATION "${plugin_dest_dir}" COMPONENT Runtime)
|
|
||||||
install(DIRECTORY "${PKG_GSTREAMER_BAD_PLUGIN_DIR}" DESTINATION "${plugin_dest_dir}" COMPONENT Runtime)
|
|
||||||
|
|
||||||
install(DIRECTORY "/usr/local/Cellar/gst-plugins-good/1.18.4/lib/gstreamer-1.0" DESTINATION "${plugin_dest_dir}" COMPONENT Runtime)
|
|
||||||
install(DIRECTORY "/usr/local/Cellar/gst-plugins-ugly/1.18.4_1/lib/gstreamer-1.0" DESTINATION "${plugin_dest_dir}" COMPONENT Runtime)
|
|
||||||
install(DIRECTORY "/usr/local/Cellar/gst-libav/1.18.4/lib/gstreamer-1.0" DESTINATION "${plugin_dest_dir}" COMPONENT Runtime)
|
|
||||||
|
|
||||||
# install locally recompiled & installed gst-plugins (because not included in brew package)
|
|
||||||
install(FILES "/usr/local/lib/gstreamer-1.0/libgstapplemedia.dylib"
|
|
||||||
"/usr/local/lib/gstreamer-1.0/libgstde265.dylib"
|
|
||||||
"/usr/local/lib/gstreamer-1.0/libgstx265.dylib"
|
|
||||||
DESTINATION "${plugin_dest_dir}/gstreamer-1.0" COMPONENT Runtime)
|
|
||||||
|
|
||||||
# install frei0r plugins (dependencies of gstreamer-1.0/libgstfrei0r.dylib plugin)
|
|
||||||
install(FILES "/usr/local/Cellar/frei0r/1.7.0/lib/frei0r-1/lissajous0r.so"
|
|
||||||
"/usr/local/Cellar/frei0r/1.7.0/lib/frei0r-1/rgbnoise.so"
|
|
||||||
DESTINATION "${plugin_dest_dir}/frei0r-1" COMPONENT Runtime)
|
|
||||||
|
|
||||||
|
|
||||||
# ICU DATA LIB GST dependency : undocumented and hacked here : seems to work
|
|
||||||
# install(FILES "${ICU_LINK_LIBRARIES}" DESTINATION "${plugin_dest_dir}/gstreamer-1.0" COMPONENT Runtime)
|
|
||||||
install(FILES "/usr/local/Cellar/icu4c/69.1/lib/libicudata.69.1.dylib" DESTINATION "${plugin_dest_dir}/gstreamer-1.0" RENAME "libicudata.69.dylib" COMPONENT Runtime)
|
|
||||||
message(STATUS "install ${ICU_LINK_LIBRARIES} from ${ICU_LIBRARY_DIRS}")
|
|
||||||
|
|
||||||
# package runtime fixup bundle
|
|
||||||
set(APPS "\${CMAKE_INSTALL_PREFIX}/vimix.app")
|
|
||||||
install(CODE "
|
|
||||||
file(GLOB_RECURSE GSTPLUGINS \"\${CMAKE_INSTALL_PREFIX}/${plugin_dest_dir}/gstreamer-1.0/*.dylib\")
|
|
||||||
list(APPEND LIBS_PATH \"\${ICU_LIBRARY_DIRS}\")
|
|
||||||
include(BundleUtilities)
|
|
||||||
set(BU_CHMOD_BUNDLE_ITEMS TRUE)
|
|
||||||
fixup_bundle(\"${APPS}\" \"\${GSTPLUGINS}\" \"${LIBS_PATH}\")
|
|
||||||
"
|
|
||||||
COMPONENT Runtime
|
|
||||||
)
|
|
||||||
|
|
||||||
set(APPLE_CODESIGN_ENTITLEMENTS "${CMAKE_CURRENT_SOURCE_DIR}/osx/entitlements.plist")
|
|
||||||
set(APPLE_CODESIGN_IDENTITY "" CACHE STRING "")
|
|
||||||
string(LENGTH "${APPLE_CODESIGN_IDENTITY}" APPLE_CODESIGN_IDENTITY_LENGHT)
|
|
||||||
if( ${APPLE_CODESIGN_IDENTITY_LENGHT} LESS 40 )
|
|
||||||
message(STATUS "Not signing bundle. Specify APPLE_CODESIGN_IDENTITY to cmake before running cpack to sign")
|
|
||||||
else()
|
|
||||||
install(CODE "
|
|
||||||
execute_process(COMMAND
|
|
||||||
codesign -vvv --deep --force
|
|
||||||
--entitlements \"${APPLE_CODESIGN_ENTITLEMENTS}\"
|
|
||||||
--sign \"${APPLE_CODESIGN_IDENTITY}\"
|
|
||||||
\"${APPS}\" )
|
|
||||||
"
|
|
||||||
COMPONENT Runtime
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# # package runtime fixup bundle and codesign
|
|
||||||
# set(BUNDLE_NAME "vimix.app")
|
|
||||||
# set(BUNDLE_LIBS_DIR "${plugin_dest_dir}/gstreamer-1.0")
|
|
||||||
# set(BUNDLE_DIRS "${ICU_LIBRARY_DIRS}")
|
|
||||||
# set(APPLE_CODESIGN_ENTITLEMENTS "${CMAKE_CURRENT_SOURCE_DIR}/osx/entitlements.plist")
|
|
||||||
|
|
||||||
# configure_file(cmake/modules/BundleInstall.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/BundleInstall.cmake" @ONLY)
|
|
||||||
# install(SCRIPT "${CMAKE_CURRENT_BINARY_DIR}/BundleInstall.cmake" COMPONENT Runtime)
|
|
||||||
|
|
||||||
ELSE(APPLE)
|
|
||||||
|
|
||||||
install(TARGETS ${VMIX_BINARY}
|
|
||||||
CONFIGURATIONS Release RelWithDebInfo
|
|
||||||
RUNTIME DESTINATION bin COMPONENT Runtime
|
|
||||||
)
|
|
||||||
|
|
||||||
ENDIF(APPLE)
|
|
||||||
|
|
||||||
# Package full name
|
|
||||||
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}_${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}_${CPACK_SYSTEM_NAME}")
|
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}_${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}_${CPACK_SYSTEM_NAME}")
|
||||||
|
set(CPACK_STRIP_FILES TRUE)
|
||||||
|
|
||||||
|
|
||||||
|
#####
|
||||||
|
##### Build Application
|
||||||
|
#####
|
||||||
|
add_subdirectory(src)
|
||||||
|
|
||||||
|
|
||||||
# To Create a package, run "cpack"
|
# To Create a package, run "cpack"
|
||||||
include(CPack)
|
include(CPack)
|
||||||
|
|||||||
25
imgui.ini
25
imgui.ini
@@ -1,25 +0,0 @@
|
|||||||
[Window][Debug##Default]
|
|
||||||
Pos=60,60
|
|
||||||
Size=400,400
|
|
||||||
Collapsed=0
|
|
||||||
|
|
||||||
[Window][v-mix]
|
|
||||||
Pos=40,40
|
|
||||||
Size=300,300
|
|
||||||
Collapsed=0
|
|
||||||
|
|
||||||
[Window][Media Player]
|
|
||||||
Pos=8,678
|
|
||||||
Size=947,624
|
|
||||||
Collapsed=0
|
|
||||||
|
|
||||||
[Window][Text Editor]
|
|
||||||
Pos=696,206
|
|
||||||
Size=800,600
|
|
||||||
Collapsed=0
|
|
||||||
|
|
||||||
[Window][Image properties]
|
|
||||||
Pos=511,51
|
|
||||||
Size=172,256
|
|
||||||
Collapsed=0
|
|
||||||
|
|
||||||
272
src/CMakeLists.txt
Normal file
272
src/CMakeLists.txt
Normal file
@@ -0,0 +1,272 @@
|
|||||||
|
|
||||||
|
#####
|
||||||
|
##### VIMIX TARGET BINARY
|
||||||
|
#####
|
||||||
|
|
||||||
|
set(VMIX_BINARY "vimix")
|
||||||
|
set(VMIX_SRCS
|
||||||
|
main.cpp
|
||||||
|
Log.cpp
|
||||||
|
BaseToolkit.cpp
|
||||||
|
Shader.cpp
|
||||||
|
ImageShader.cpp
|
||||||
|
ImageProcessingShader.cpp
|
||||||
|
UpdateCallback.cpp
|
||||||
|
Scene.cpp
|
||||||
|
Primitives.cpp
|
||||||
|
Mesh.cpp
|
||||||
|
Decorations.cpp
|
||||||
|
View.cpp
|
||||||
|
RenderView.cpp
|
||||||
|
GeometryView.cpp
|
||||||
|
MixingView.cpp
|
||||||
|
MixingGroup.cpp
|
||||||
|
LayerView.cpp
|
||||||
|
TextureView.cpp
|
||||||
|
TransitionView.cpp
|
||||||
|
Source.cpp
|
||||||
|
CloneSource.cpp
|
||||||
|
RenderSource.cpp
|
||||||
|
SourceCallback.cpp
|
||||||
|
SourceList.cpp
|
||||||
|
Session.cpp
|
||||||
|
Selection.cpp
|
||||||
|
SessionSource.cpp
|
||||||
|
SessionVisitor.cpp
|
||||||
|
Interpolator.cpp
|
||||||
|
SessionCreator.cpp
|
||||||
|
SessionParser.cpp
|
||||||
|
Mixer.cpp
|
||||||
|
FrameGrabber.cpp
|
||||||
|
Recorder.cpp
|
||||||
|
Streamer.cpp
|
||||||
|
Loopback.cpp
|
||||||
|
Settings.cpp
|
||||||
|
Screenshot.cpp
|
||||||
|
Resource.cpp
|
||||||
|
Timeline.cpp
|
||||||
|
Stream.cpp
|
||||||
|
MediaPlayer.cpp
|
||||||
|
MediaSource.cpp
|
||||||
|
StreamSource.cpp
|
||||||
|
PatternSource.cpp
|
||||||
|
DeviceSource.cpp
|
||||||
|
NetworkSource.cpp
|
||||||
|
MultiFileSource.cpp
|
||||||
|
FrameBuffer.cpp
|
||||||
|
FrameBufferFilter.cpp
|
||||||
|
ImageFilter.cpp
|
||||||
|
DelayFilter.cpp
|
||||||
|
RenderingManager.cpp
|
||||||
|
UserInterfaceManager.cpp
|
||||||
|
PickingVisitor.cpp
|
||||||
|
BoundingBoxVisitor.cpp
|
||||||
|
DrawVisitor.cpp
|
||||||
|
SearchVisitor.cpp
|
||||||
|
ImGuiToolkit.cpp
|
||||||
|
ImGuiVisitor.cpp
|
||||||
|
InfoVisitor.cpp
|
||||||
|
CountVisitor.cpp
|
||||||
|
GstToolkit.cpp
|
||||||
|
GlmToolkit.cpp
|
||||||
|
SystemToolkit.cpp
|
||||||
|
DialogToolkit.cpp
|
||||||
|
tinyxml2Toolkit.cpp
|
||||||
|
NetworkToolkit.cpp
|
||||||
|
Connection.cpp
|
||||||
|
ActionManager.cpp
|
||||||
|
Overlay.cpp
|
||||||
|
Metronome.cpp
|
||||||
|
ControlManager.cpp
|
||||||
|
VideoBroadcast.cpp
|
||||||
|
SrtReceiverSource.cpp
|
||||||
|
MultiFileRecorder.cpp
|
||||||
|
)
|
||||||
|
|
||||||
|
#####
|
||||||
|
##### DEFINE THE TARGET (OS specific)
|
||||||
|
#####
|
||||||
|
|
||||||
|
IF(APPLE)
|
||||||
|
|
||||||
|
# set icon
|
||||||
|
set(MACOSX_BUNDLE_ICON vimix.icns)
|
||||||
|
set(MACOSX_BUNDLE_ICON_FILE ${CMAKE_SOURCE_DIR}/osx/${MACOSX_BUNDLE_ICON})
|
||||||
|
# set where in the bundle to put the icns file
|
||||||
|
set_source_files_properties(${MACOSX_BUNDLE_ICON_FILE} PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
|
||||||
|
|
||||||
|
# create the application
|
||||||
|
add_executable(${VMIX_BINARY} MACOSX_BUNDLE
|
||||||
|
${VMIX_SRCS}
|
||||||
|
${MACOSX_BUNDLE_ICON_FILE}
|
||||||
|
)
|
||||||
|
|
||||||
|
# set the Info.plist file
|
||||||
|
set(MACOSX_BUNDLE_PLIST_FILE ${CMAKE_SOURCE_DIR}/osx/Info.plist)
|
||||||
|
set_target_properties(${VMIX_BINARY} PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${MACOSX_BUNDLE_PLIST_FILE})
|
||||||
|
|
||||||
|
set(PLATFORM_LIBS
|
||||||
|
"-framework CoreFoundation"
|
||||||
|
"-framework Appkit"
|
||||||
|
)
|
||||||
|
|
||||||
|
ELSE(APPLE)
|
||||||
|
|
||||||
|
link_directories (${GTK3_LIBRARY_DIRS})
|
||||||
|
|
||||||
|
add_executable(${VMIX_BINARY}
|
||||||
|
${VMIX_SRCS}
|
||||||
|
)
|
||||||
|
|
||||||
|
set(PLATFORM_LIBS
|
||||||
|
GTK::GTK
|
||||||
|
)
|
||||||
|
|
||||||
|
ENDIF(APPLE)
|
||||||
|
|
||||||
|
#####
|
||||||
|
##### COMPILE THE TARGET (all OS)
|
||||||
|
#####
|
||||||
|
|
||||||
|
set_property(TARGET ${VMIX_BINARY} PROPERTY CXX_STANDARD 17)
|
||||||
|
set_property(TARGET ${VMIX_BINARY} PROPERTY C_STANDARD 11)
|
||||||
|
|
||||||
|
target_compile_definitions(${VMIX_BINARY} PUBLIC "IMGUI_IMPL_OPENGL_LOADER_GLAD")
|
||||||
|
|
||||||
|
target_link_libraries(${VMIX_BINARY} LINK_PRIVATE
|
||||||
|
${PLATFORM_LIBS}
|
||||||
|
${GLM_LIBRARIES}
|
||||||
|
${GLAD_LIBRARIES}
|
||||||
|
${OSCPACK_LIBRARIES}
|
||||||
|
${IMGUI_LIBRARIES}
|
||||||
|
${TINYFD_LIBRARIES}
|
||||||
|
${GLFW3_LIBRARIES}
|
||||||
|
${TINYXML2_LIBRARIES}
|
||||||
|
${ICU_LIBRARIES}
|
||||||
|
${CMAKE_DL_LIBS}
|
||||||
|
${GOBJECT_LIBRARIES}
|
||||||
|
${GSTREAMER_LIBRARY}
|
||||||
|
${GSTREAMER_BASE_LIBRARY}
|
||||||
|
${GSTREAMER_APP_LIBRARY}
|
||||||
|
${GSTREAMER_AUDIO_LIBRARY}
|
||||||
|
${GSTREAMER_VIDEO_LIBRARY}
|
||||||
|
${GSTREAMER_PBUTILS_LIBRARY}
|
||||||
|
${GSTREAMER_GL_LIBRARY}
|
||||||
|
Threads::Threads
|
||||||
|
ZLIB::ZLIB
|
||||||
|
Ableton::Link
|
||||||
|
vmix::rc
|
||||||
|
)
|
||||||
|
|
||||||
|
#####
|
||||||
|
##### DEFINE THE APPLICATION PACKAGING (OS specific)
|
||||||
|
#####
|
||||||
|
|
||||||
|
IF(APPLE)
|
||||||
|
|
||||||
|
# Bundle target
|
||||||
|
set(CPACK_GENERATOR DragNDrop)
|
||||||
|
set(CPACK_BINARY_DRAGNDROP ON)
|
||||||
|
|
||||||
|
install(TARGETS ${VMIX_BINARY}
|
||||||
|
CONFIGURATIONS Release RelWithDebInfo
|
||||||
|
BUNDLE DESTINATION . COMPONENT Runtime
|
||||||
|
RUNTIME DESTINATION bin COMPONENT Runtime
|
||||||
|
)
|
||||||
|
|
||||||
|
# create GST plugins directory in Bundle Resources subfolder
|
||||||
|
set(plugin_dest_dir vimix.app/Contents/Resources/)
|
||||||
|
|
||||||
|
### TODO configure auto to find installation dir of gst
|
||||||
|
|
||||||
|
message(STATUS "install gst-plugins ${PKG_GSTREAMER_PLUGIN_DIR}")
|
||||||
|
message(STATUS "install gst-plugins-base ${PKG_GSTREAMER_BASE_PLUGIN_DIR}")
|
||||||
|
|
||||||
|
if (PKG_CONFIG_FOUND)
|
||||||
|
pkg_check_modules(PKG_GSTREAMER_PLUGINS_BAD gstreamer-plugins-bad-${GSTREAMER_ABI_VERSION})
|
||||||
|
set(PKG_GSTREAMER_BAD_PLUGIN_DIR ${PKG_GSTREAMER_PLUGINS_BAD_LIBDIR}/gstreamer-${GSTREAMER_ABI_VERSION})
|
||||||
|
message(STATUS "install gst-plugins-bad ${PKG_GSTREAMER_BAD_PLUGIN_DIR}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
|
||||||
|
# intall the gst-plugin-scanner program (used by plugins at load time)
|
||||||
|
set(PKG_GSTREAMER_SCANNER "${PKG_GSTREAMER_PREFIX}/libexec/gstreamer-1.0/gst-plugin-scanner")
|
||||||
|
message(STATUS "install gst-plugin-scanner ${PKG_GSTREAMER_SCANNER}")
|
||||||
|
install(FILES "${PKG_GSTREAMER_SCANNER}"
|
||||||
|
DESTINATION "${plugin_dest_dir}"
|
||||||
|
PERMISSIONS OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
|
||||||
|
COMPONENT Runtime
|
||||||
|
)
|
||||||
|
|
||||||
|
# Install the gst-plugins (all those installed with brew )
|
||||||
|
install(DIRECTORY "${PKG_GSTREAMER_PLUGIN_DIR}" DESTINATION "${plugin_dest_dir}" COMPONENT Runtime)
|
||||||
|
install(DIRECTORY "${PKG_GSTREAMER_BASE_PLUGIN_DIR}" DESTINATION "${plugin_dest_dir}" COMPONENT Runtime)
|
||||||
|
install(DIRECTORY "${PKG_GSTREAMER_BAD_PLUGIN_DIR}" DESTINATION "${plugin_dest_dir}" COMPONENT Runtime)
|
||||||
|
|
||||||
|
install(DIRECTORY "/usr/local/Cellar/gst-plugins-good/1.18.4/lib/gstreamer-1.0" DESTINATION "${plugin_dest_dir}" COMPONENT Runtime)
|
||||||
|
install(DIRECTORY "/usr/local/Cellar/gst-plugins-ugly/1.18.4_1/lib/gstreamer-1.0" DESTINATION "${plugin_dest_dir}" COMPONENT Runtime)
|
||||||
|
install(DIRECTORY "/usr/local/Cellar/gst-libav/1.18.4/lib/gstreamer-1.0" DESTINATION "${plugin_dest_dir}" COMPONENT Runtime)
|
||||||
|
|
||||||
|
# install locally recompiled & installed gst-plugins (because not included in brew package)
|
||||||
|
install(FILES "/usr/local/lib/gstreamer-1.0/libgstapplemedia.dylib"
|
||||||
|
"/usr/local/lib/gstreamer-1.0/libgstde265.dylib"
|
||||||
|
"/usr/local/lib/gstreamer-1.0/libgstx265.dylib"
|
||||||
|
DESTINATION "${plugin_dest_dir}/gstreamer-1.0" COMPONENT Runtime)
|
||||||
|
|
||||||
|
# install frei0r plugins (dependencies of gstreamer-1.0/libgstfrei0r.dylib plugin)
|
||||||
|
install(FILES "/usr/local/Cellar/frei0r/1.7.0/lib/frei0r-1/lissajous0r.so"
|
||||||
|
"/usr/local/Cellar/frei0r/1.7.0/lib/frei0r-1/rgbnoise.so"
|
||||||
|
DESTINATION "${plugin_dest_dir}/frei0r-1" COMPONENT Runtime)
|
||||||
|
|
||||||
|
|
||||||
|
# ICU DATA LIB GST dependency : undocumented and hacked here : seems to work
|
||||||
|
# install(FILES "${ICU_LINK_LIBRARIES}" DESTINATION "${plugin_dest_dir}/gstreamer-1.0" COMPONENT Runtime)
|
||||||
|
install(FILES "/usr/local/Cellar/icu4c/69.1/lib/libicudata.69.1.dylib" DESTINATION "${plugin_dest_dir}/gstreamer-1.0" RENAME "libicudata.69.dylib" COMPONENT Runtime)
|
||||||
|
message(STATUS "install ${ICU_LINK_LIBRARIES} from ${ICU_LIBRARY_DIRS}")
|
||||||
|
|
||||||
|
# package runtime fixup bundle
|
||||||
|
set(APPS "\${CMAKE_INSTALL_PREFIX}/vimix.app")
|
||||||
|
install(CODE "
|
||||||
|
file(GLOB_RECURSE GSTPLUGINS \"\${CMAKE_INSTALL_PREFIX}/${plugin_dest_dir}/gstreamer-1.0/*.dylib\")
|
||||||
|
list(APPEND LIBS_PATH \"\${ICU_LIBRARY_DIRS}\")
|
||||||
|
include(BundleUtilities)
|
||||||
|
set(BU_CHMOD_BUNDLE_ITEMS TRUE)
|
||||||
|
fixup_bundle(\"${APPS}\" \"\${GSTPLUGINS}\" \"${LIBS_PATH}\")
|
||||||
|
"
|
||||||
|
COMPONENT Runtime
|
||||||
|
)
|
||||||
|
|
||||||
|
set(APPLE_CODESIGN_ENTITLEMENTS "${CMAKE_CURRENT_SOURCE_DIR}/osx/entitlements.plist")
|
||||||
|
set(APPLE_CODESIGN_IDENTITY "" CACHE STRING "")
|
||||||
|
string(LENGTH "${APPLE_CODESIGN_IDENTITY}" APPLE_CODESIGN_IDENTITY_LENGHT)
|
||||||
|
if( ${APPLE_CODESIGN_IDENTITY_LENGHT} LESS 40 )
|
||||||
|
message(STATUS "Not signing bundle. Specify APPLE_CODESIGN_IDENTITY to cmake before running cpack to sign")
|
||||||
|
else()
|
||||||
|
install(CODE "
|
||||||
|
execute_process(COMMAND
|
||||||
|
codesign -vvv --deep --force
|
||||||
|
--entitlements \"${APPLE_CODESIGN_ENTITLEMENTS}\"
|
||||||
|
--sign \"${APPLE_CODESIGN_IDENTITY}\"
|
||||||
|
\"${APPS}\" )
|
||||||
|
"
|
||||||
|
COMPONENT Runtime
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# # package runtime fixup bundle and codesign
|
||||||
|
# set(BUNDLE_NAME "vimix.app")
|
||||||
|
# set(BUNDLE_LIBS_DIR "${plugin_dest_dir}/gstreamer-1.0")
|
||||||
|
# set(BUNDLE_DIRS "${ICU_LIBRARY_DIRS}")
|
||||||
|
# set(APPLE_CODESIGN_ENTITLEMENTS "${CMAKE_CURRENT_SOURCE_DIR}/osx/entitlements.plist")
|
||||||
|
|
||||||
|
# configure_file(cmake/modules/BundleInstall.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/BundleInstall.cmake" @ONLY)
|
||||||
|
# install(SCRIPT "${CMAKE_CURRENT_BINARY_DIR}/BundleInstall.cmake" COMPONENT Runtime)
|
||||||
|
|
||||||
|
ELSE(APPLE)
|
||||||
|
|
||||||
|
install(TARGETS ${VMIX_BINARY}
|
||||||
|
CONFIGURATIONS Release RelWithDebInfo
|
||||||
|
RUNTIME DESTINATION bin COMPONENT Runtime
|
||||||
|
)
|
||||||
|
|
||||||
|
ENDIF(APPLE)
|
||||||
@@ -10,7 +10,7 @@
|
|||||||
#define IMGUI_DEFINE_MATH_OPERATORS
|
#define IMGUI_DEFINE_MATH_OPERATORS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "rsc/fonts/IconsFontAwesome5.h"
|
#include "IconsFontAwesome5.h"
|
||||||
|
|
||||||
namespace ImGuiToolkit
|
namespace ImGuiToolkit
|
||||||
{
|
{
|
||||||
@@ -22,7 +22,7 @@
|
|||||||
#include "defines.h"
|
#include "defines.h"
|
||||||
#include "Visitor.h"
|
#include "Visitor.h"
|
||||||
#include "Resource.h"
|
#include "Resource.h"
|
||||||
#include "rsc/fonts/IconsFontAwesome5.h"
|
#include "IconsFontAwesome5.h"
|
||||||
|
|
||||||
#include "ImageShader.h"
|
#include "ImageShader.h"
|
||||||
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user