mirror of
https://github.com/brunoherbelin/vimix.git
synced 2025-12-05 15:30:00 +01:00
Update CMAKE for OSX
minor text message changes
This commit is contained in:
192
CMakeLists.txt
192
CMakeLists.txt
@@ -20,12 +20,12 @@ if(GIT_EXECUTABLE)
|
|||||||
add_definitions(-DVIMIX_VERSION_MAJOR=${VIMIX_VERSION_MAJOR})
|
add_definitions(-DVIMIX_VERSION_MAJOR=${VIMIX_VERSION_MAJOR})
|
||||||
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}")
|
||||||
|
else()
|
||||||
|
message(STATUS "Compiling vimix (unknown version)")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
message(STATUS "Compiling vimix version ${VIMIX_VERSION_MAJOR}.${VIMIX_VERSION_MINOR}.${VIMIX_VERSION_PATCH}")
|
|
||||||
|
|
||||||
set(CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "ON")
|
|
||||||
set(CMAKE_INCLUDE_CURRENTDIR ON)
|
set(CMAKE_INCLUDE_CURRENTDIR ON)
|
||||||
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules )
|
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules )
|
||||||
include(MacroLogFeature)
|
include(MacroLogFeature)
|
||||||
@@ -38,15 +38,18 @@ if(UNIX)
|
|||||||
set(CMAKE_SKIP_RPATH TRUE)
|
set(CMAKE_SKIP_RPATH TRUE)
|
||||||
set(OpenGL_DIR /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/)
|
set(OpenGL_DIR /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/)
|
||||||
set(CMAKE_OSX_ARCHITECTURES x86_64)
|
set(CMAKE_OSX_ARCHITECTURES x86_64)
|
||||||
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.13")
|
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.14")
|
||||||
# set(CMAKE_OSX_DEPLOYMENT_TARGET "10.13" CACHE STRING "Minimum OS X version to target for deployment")
|
|
||||||
set (ICU_ROOT /usr/local/Cellar/icu4c/69.1)
|
# find icu4c in OSX (pretty well hidden...)
|
||||||
|
set(ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_PATH}:/usr/local/opt/icu4c/lib/pkgconfig")
|
||||||
|
|
||||||
else()
|
else()
|
||||||
add_definitions(-DLINUX)
|
add_definitions(-DLINUX)
|
||||||
|
|
||||||
|
# linux opengl
|
||||||
set(OpenGL_GL_PREFERENCE "GLVND")
|
set(OpenGL_GL_PREFERENCE "GLVND")
|
||||||
|
|
||||||
|
# linux dialogs use GTK
|
||||||
find_package(GTK 3.0 REQUIRED)
|
find_package(GTK 3.0 REQUIRED)
|
||||||
macro_log_feature(GTK_FOUND "GTK" "GTK cross-platform widget toolkit" "http://www.gtk.org" TRUE)
|
macro_log_feature(GTK_FOUND "GTK" "GTK cross-platform widget toolkit" "http://www.gtk.org" TRUE)
|
||||||
|
|
||||||
@@ -71,9 +74,6 @@ macro_log_feature(GOBJECT_FOUND "GObject" "GTK object-oriented framework" "http:
|
|||||||
find_package(PNG REQUIRED)
|
find_package(PNG REQUIRED)
|
||||||
macro_log_feature(PNG_FOUND "PNG" "Portable Network Graphics" "http://www.libpng.org" TRUE)
|
macro_log_feature(PNG_FOUND "PNG" "Portable Network Graphics" "http://www.libpng.org" TRUE)
|
||||||
|
|
||||||
find_package(ICU REQUIRED COMPONENTS i18n io uc)
|
|
||||||
macro_log_feature(ICU_FOUND "ICU" "International Components for Unicode" "http://site.icu-project.org" TRUE)
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# GSTREAMER
|
# GSTREAMER
|
||||||
#
|
#
|
||||||
@@ -82,49 +82,46 @@ 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"
|
||||||
"http://gstreamer.freedesktop.org/" TRUE "1.0.0")
|
"http://gstreamer.freedesktop.org/" TRUE "1.0.0")
|
||||||
macro_log_feature(GSTREAMER_BASE_LIBRARY_FOUND "GStreamer base library"
|
|
||||||
"${GSTREAMER_BASE_LIBRARY}"
|
|
||||||
"http://gstreamer.freedesktop.org/" FALSE "1.0.0")
|
|
||||||
|
|
||||||
find_package(GStreamerPluginsBase 1.0.0 COMPONENTS app audio video pbutils gl)
|
find_package(GStreamerPluginsBase 1.0.0 COMPONENTS app audio video pbutils gl)
|
||||||
macro_log_feature(GSTREAMER_APP_LIBRARY_FOUND "GStreamer app library"
|
macro_log_feature(GSTREAMER_APP_LIBRARY_FOUND "GStreamerPluginsBase" "GStreamer app library"
|
||||||
"${GSTREAMER_APP_LIBRARY}"
|
|
||||||
"http://gstreamer.freedesktop.org/" TRUE "1.0.0")
|
"http://gstreamer.freedesktop.org/" TRUE "1.0.0")
|
||||||
|
|
||||||
macro_log_feature(GSTREAMER_AUDIO_LIBRARY_FOUND "GStreamer audio library"
|
macro_log_feature(GSTREAMER_AUDIO_LIBRARY_FOUND "GStreamerPluginsBase" "GStreamer audio library"
|
||||||
"${GSTREAMER_AUDIO_LIBRARY}"
|
|
||||||
"http://gstreamer.freedesktop.org/" TRUE "1.0.0")
|
"http://gstreamer.freedesktop.org/" TRUE "1.0.0")
|
||||||
|
|
||||||
macro_log_feature(GSTREAMER_VIDEO_LIBRARY_FOUND "GStreamer video library"
|
macro_log_feature(GSTREAMER_VIDEO_LIBRARY_FOUND "GStreamerPluginsBase" "GStreamer video library"
|
||||||
"${GSTREAMER_VIDEO_LIBRARY}"
|
|
||||||
"http://gstreamer.freedesktop.org/" TRUE "1.0.0")
|
"http://gstreamer.freedesktop.org/" TRUE "1.0.0")
|
||||||
|
|
||||||
macro_log_feature(GSTREAMER_PBUTILS_LIBRARY_FOUND "GStreamer pbutils library"
|
macro_log_feature(GSTREAMER_PBUTILS_LIBRARY_FOUND "GStreamerPluginsBase" "GStreamer pbutils library"
|
||||||
"${GSTREAMER_PBUTILS_LIBRARY}"
|
|
||||||
"http://gstreamer.freedesktop.org/" TRUE "1.0.0")
|
"http://gstreamer.freedesktop.org/" TRUE "1.0.0")
|
||||||
|
|
||||||
macro_log_feature(GSTREAMER_GL_LIBRARY_FOUND "GStreamer opengl library"
|
macro_log_feature(GSTREAMER_GL_LIBRARY_FOUND "GStreamerPluginsBase" "GStreamer opengl library"
|
||||||
"${GSTREAMER_GL_LIBRARY}"
|
|
||||||
"http://gstreamer.freedesktop.org/" TRUE "1.0.0")
|
"http://gstreamer.freedesktop.org/" TRUE "1.0.0")
|
||||||
|
|
||||||
#find_package(GStreamerPluginsBad 1.0.0 COMPONENTS player)
|
|
||||||
#macro_log_feature(GSTREAMER_PLAYER_LIBRARY_FOUND "GStreamer player library"
|
|
||||||
#"${GSTREAMER_PLAYER_LIBRARY}"
|
|
||||||
#"http://gstreamer.freedesktop.org/" TRUE "1.0.0")
|
|
||||||
|
|
||||||
|
|
||||||
# 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)
|
||||||
|
|
||||||
|
#
|
||||||
|
# ICU4C
|
||||||
|
#
|
||||||
|
if (PKG_CONFIG_FOUND)
|
||||||
|
pkg_check_modules(ICU REQUIRED icu-i18n icu-uc icu-io)
|
||||||
|
else ()
|
||||||
|
find_package(ICU REQUIRED COMPONENTS i18n io uc)
|
||||||
|
endif ()
|
||||||
|
macro_log_feature(ICU_FOUND "ICU" "International Components for Unicode" "http://site.icu-project.org" TRUE)
|
||||||
|
|
||||||
#
|
#
|
||||||
# GLFW3
|
# GLFW3
|
||||||
# NB: set glfw3_PATH to /usr/local/Cellar/glfw/3.3.2/lib/cmake/glfw3
|
|
||||||
#
|
#
|
||||||
find_package(glfw3 3.2 REQUIRED)
|
if (PKG_CONFIG_FOUND)
|
||||||
macro_log_feature(glfw3_FOUND "GLFW3" "Open Source multi-platform library for OpenGL" "http://www.glfw.org" TRUE)
|
pkg_check_modules(GLFW3 REQUIRED glfw3>=3.2)
|
||||||
set(GLFW_LIBRARY glfw)
|
else ()
|
||||||
|
find_package(glfw3 3.2 REQUIRED)
|
||||||
|
endif()
|
||||||
|
macro_log_feature(GLFW3_FOUND "glfw3" "Open Source multi-platform library for OpenGL" "http://www.glfw.org" TRUE)
|
||||||
|
|
||||||
|
|
||||||
macro_display_feature_log()
|
macro_display_feature_log()
|
||||||
|
|
||||||
@@ -135,14 +132,14 @@ set(BUILD_STATIC_LIBS ON)
|
|||||||
# GLM
|
# GLM
|
||||||
#
|
#
|
||||||
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/ext/glm)
|
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/ext/glm)
|
||||||
message(STATUS "Compiling 'GLM' OpenGL mathematics https://glm.g-truc.net")
|
message(STATUS "Compiling 'GLM' OpenGL mathematics https://glm.g-truc.net -- ${CMAKE_CURRENT_SOURCE_DIR}/ext/glm")
|
||||||
|
|
||||||
#
|
#
|
||||||
# GLAD
|
# GLAD
|
||||||
#
|
#
|
||||||
set(GLAD_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/ext/glad/include)
|
set(GLAD_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/ext/glad/include)
|
||||||
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 "Compiling 'GLAD' Open source multi-language OpenGL loader https://glad.dav1d.de -- ${GLAD_INCLUDE_DIR}.")
|
message(STATUS "Compiling 'GLAD' Open source multi-language OpenGL loader https://glad.dav1d.de -- ${GLAD_INCLUDE_DIR}")
|
||||||
|
|
||||||
#
|
#
|
||||||
# DEAR IMGUI
|
# DEAR IMGUI
|
||||||
@@ -158,23 +155,14 @@ set(IMGUI_SRCS
|
|||||||
set(IMGUI_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/ext/imgui)
|
set(IMGUI_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/ext/imgui)
|
||||||
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")
|
||||||
message(STATUS "Compiling 'Dear ImGui' from https://github.com/ocornut/imgui.git -- ${IMGUI_INCLUDE_DIR}.")
|
message(STATUS "Compiling 'Dear ImGui' from https://github.com/ocornut/imgui.git -- ${IMGUI_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}.")
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# TINY XML 2
|
# TINY XML 2
|
||||||
#
|
#
|
||||||
set(TINYXML2_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/ext/tinyxml2)
|
set(TINYXML2_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/ext/tinyxml2)
|
||||||
add_library(TINYXML2 "${CMAKE_CURRENT_SOURCE_DIR}/ext/tinyxml2/tinyxml2.cpp")
|
add_library(TINYXML2 "${CMAKE_CURRENT_SOURCE_DIR}/ext/tinyxml2/tinyxml2.cpp")
|
||||||
message(STATUS "Compiling 'TinyXML2' from https://github.com/leethomason/tinyxml2.git -- ${TINYXML2_INCLUDE_DIR}.")
|
message(STATUS "Compiling 'TinyXML2' from https://github.com/leethomason/tinyxml2.git -- ${TINYXML2_INCLUDE_DIR}")
|
||||||
|
|
||||||
#
|
#
|
||||||
# OSCPack
|
# OSCPack
|
||||||
@@ -195,22 +183,7 @@ set(OSCPACK_SRCS
|
|||||||
)
|
)
|
||||||
set(OSCPACK_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/ext/OSCPack)
|
set(OSCPACK_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/ext/OSCPack)
|
||||||
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}")
|
||||||
|
|
||||||
#
|
|
||||||
# STB
|
|
||||||
#
|
|
||||||
set(STB_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/ext/stb)
|
|
||||||
add_definitions(-DIMGUI_USE_STB_SPRINTF)
|
|
||||||
message(STATUS "Including 'STB Nothings' from https://github.com/nothings/stb -- ${STB_INCLUDE_DIR}.")
|
|
||||||
|
|
||||||
#
|
|
||||||
# DIRENT
|
|
||||||
#
|
|
||||||
if(WIN32)
|
|
||||||
set(DIRENT_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/ext/Dirent/include)
|
|
||||||
message(STATUS "Including 'Dirent' from https://github.com/tronkko/dirent -- ${DIRENT_INCLUDE_DIR}.")
|
|
||||||
endif( WIN32 )
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# FILE DIALOG: use tinyfiledialog for all except Linux
|
# FILE DIALOG: use tinyfiledialog for all except Linux
|
||||||
@@ -230,11 +203,27 @@ else()
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
#
|
#
|
||||||
# OBJ LOADER - not used
|
# ImGui Color Text Editor
|
||||||
#
|
#
|
||||||
#set(OBJLOADER_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/ext/obj)
|
set(IMGUITEXTEDIT_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/ext/ImGuiColorTextEdit)
|
||||||
#add_library(OBJLOADER "${CMAKE_CURRENT_SOURCE_DIR}/ext/obj/ObjLoader.cpp")
|
set(IMGUITEXTEDIT_SRC
|
||||||
#message(STATUS "Compiling 'ObjLoader' from https://github.com/mortennobel/OpenGL_3_2_Utils -- ${OBJLOADER_INCLUDE_DIR}.")
|
${CMAKE_CURRENT_SOURCE_DIR}/ext/ImGuiColorTextEdit/TextEditor.cpp
|
||||||
|
)
|
||||||
|
message(STATUS "Including 'ImGuiColorTextEdit' from https://github.com/BalazsJako/ImGuiColorTextEdit -- ${IMGUITEXTEDIT_INCLUDE_DIR}")
|
||||||
|
|
||||||
|
#
|
||||||
|
# STB
|
||||||
|
#
|
||||||
|
set(STB_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/ext/stb)
|
||||||
|
add_definitions(-DIMGUI_USE_STB_SPRINTF)
|
||||||
|
message(STATUS "Including 'STB Nothings' from https://github.com/nothings/stb -- ${STB_INCLUDE_DIR}")
|
||||||
|
|
||||||
|
#
|
||||||
|
# DIRENT (windows only)
|
||||||
|
if(WIN32)
|
||||||
|
set(DIRENT_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/ext/Dirent/include)
|
||||||
|
message(STATUS "Including 'Dirent' from https://github.com/tronkko/dirent -- ${DIRENT_INCLUDE_DIR}.")
|
||||||
|
endif()
|
||||||
|
|
||||||
#
|
#
|
||||||
# Application
|
# Application
|
||||||
@@ -249,9 +238,11 @@ include_directories(
|
|||||||
${GSTREAMER_APP_INCLUDE_DIR}
|
${GSTREAMER_APP_INCLUDE_DIR}
|
||||||
${GSTREAMER_PBUTILS_INCLUDE_DIR}
|
${GSTREAMER_PBUTILS_INCLUDE_DIR}
|
||||||
${GSTREAMER_GL_INCLUDE_DIR}
|
${GSTREAMER_GL_INCLUDE_DIR}
|
||||||
|
${GLFW3_INCLUDE_DIRS}
|
||||||
|
${ICU_INCLUDE_DIRS}
|
||||||
|
${GLM_INCLUDE_DIRS}
|
||||||
${GLIB2_INCLUDE_DIR}
|
${GLIB2_INCLUDE_DIR}
|
||||||
${GLAD_INCLUDE_DIR}
|
${GLAD_INCLUDE_DIR}
|
||||||
${GLM_INCLUDE_DIRS}
|
|
||||||
${IMGUI_INCLUDE_DIR}
|
${IMGUI_INCLUDE_DIR}
|
||||||
${IMGUI_INCLUDE_DIR}/examples
|
${IMGUI_INCLUDE_DIR}/examples
|
||||||
${IMGUITEXTEDIT_INCLUDE_DIR}
|
${IMGUITEXTEDIT_INCLUDE_DIR}
|
||||||
@@ -260,7 +251,11 @@ include_directories(
|
|||||||
${STB_INCLUDE_DIR}
|
${STB_INCLUDE_DIR}
|
||||||
${DIRENT_INCLUDE_DIR}
|
${DIRENT_INCLUDE_DIR}
|
||||||
${OSCPACK_INCLUDE_DIR}
|
${OSCPACK_INCLUDE_DIR}
|
||||||
${ICU_INCLUDE_DIRS}
|
)
|
||||||
|
|
||||||
|
link_directories(
|
||||||
|
${GLFW3_LIBRARY_DIRS}
|
||||||
|
${ICU_LIBRARY_DIRS}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@@ -454,7 +449,6 @@ IF(APPLE)
|
|||||||
# create the application
|
# create the application
|
||||||
add_executable(${VMIX_BINARY} MACOSX_BUNDLE
|
add_executable(${VMIX_BINARY} MACOSX_BUNDLE
|
||||||
${VMIX_SRCS}
|
${VMIX_SRCS}
|
||||||
./osx/CustomDelegate.m
|
|
||||||
${IMGUITEXTEDIT_SRC}
|
${IMGUITEXTEDIT_SRC}
|
||||||
${MACOSX_BUNDLE_ICON_FILE}
|
${MACOSX_BUNDLE_ICON_FILE}
|
||||||
)
|
)
|
||||||
@@ -491,11 +485,15 @@ set_property(TARGET ${VMIX_BINARY} PROPERTY C_STANDARD 11)
|
|||||||
target_compile_definitions(${VMIX_BINARY} PUBLIC "IMGUI_IMPL_OPENGL_LOADER_GLAD")
|
target_compile_definitions(${VMIX_BINARY} PUBLIC "IMGUI_IMPL_OPENGL_LOADER_GLAD")
|
||||||
|
|
||||||
target_link_libraries(${VMIX_BINARY} LINK_PRIVATE
|
target_link_libraries(${VMIX_BINARY} LINK_PRIVATE
|
||||||
|
vmix::rc
|
||||||
|
glm::glm
|
||||||
GLAD
|
GLAD
|
||||||
TINYXML2
|
TINYXML2
|
||||||
IMGUI
|
IMGUI
|
||||||
OSCPACK
|
OSCPACK
|
||||||
${GLFW_LIBRARY}
|
${TINYFD_LIBRARY}
|
||||||
|
${GLFW3_LIBRARIES}
|
||||||
|
${ICU_LIBRARIES}
|
||||||
${CMAKE_DL_LIBS}
|
${CMAKE_DL_LIBS}
|
||||||
${GOBJECT_LIBRARIES}
|
${GOBJECT_LIBRARIES}
|
||||||
${GSTREAMER_LIBRARY}
|
${GSTREAMER_LIBRARY}
|
||||||
@@ -505,15 +503,8 @@ target_link_libraries(${VMIX_BINARY} LINK_PRIVATE
|
|||||||
${GSTREAMER_VIDEO_LIBRARY}
|
${GSTREAMER_VIDEO_LIBRARY}
|
||||||
${GSTREAMER_PBUTILS_LIBRARY}
|
${GSTREAMER_PBUTILS_LIBRARY}
|
||||||
${GSTREAMER_GL_LIBRARY}
|
${GSTREAMER_GL_LIBRARY}
|
||||||
${GSTREAMER_PLAYER_LIBRARY}
|
|
||||||
${TINYFD_LIBRARY}
|
|
||||||
Threads::Threads
|
Threads::Threads
|
||||||
PNG::PNG
|
PNG::PNG
|
||||||
glm::glm
|
|
||||||
ICU::i18n
|
|
||||||
ICU::io
|
|
||||||
ICU::uc
|
|
||||||
vmix::rc
|
|
||||||
${PLATFORM_LIBS}
|
${PLATFORM_LIBS}
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -566,34 +557,51 @@ IF(APPLE)
|
|||||||
|
|
||||||
### TODO configure auto to find installation dir of gst
|
### 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()
|
||||||
|
|
||||||
|
find_library(PKG_GSTREAMER_LIBAV_LIBRARY NAMES gstlibav )
|
||||||
|
message(STATUS "install libav ${PKG_GSTREAMER_LIBAV_LIBRARY}")
|
||||||
|
|
||||||
# intall the gst-plugin-scanner program (used by plugins at load time)
|
# intall the gst-plugin-scanner program (used by plugins at load time)
|
||||||
install(FILES "/usr/local/Cellar/gstreamer/1.18.1/libexec/gstreamer-1.0/gst-plugin-scanner"
|
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}"
|
DESTINATION "${plugin_dest_dir}"
|
||||||
PERMISSIONS OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
|
PERMISSIONS OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
|
||||||
COMPONENT Runtime
|
COMPONENT Runtime
|
||||||
)
|
)
|
||||||
|
|
||||||
# ICU DATA LIB GST dependency : undocumented and hacked here : seems to work
|
|
||||||
install(FILES "/usr/local/Cellar/icu4c/67.1/lib/libicudata.67.1.dylib" DESTINATION "${plugin_dest_dir}/gstreamer-1.0" RENAME "libicudata.67.dylib" COMPONENT Runtime)
|
|
||||||
|
|
||||||
# Install the gst-plugins (all those installed with brew )
|
# 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_PLUGIN_DIR}" DESTINATION "${plugin_dest_dir}" COMPONENT Runtime)
|
||||||
install(DIRECTORY "/usr/local/Cellar/gst-plugins-base/1.18.1/lib/gstreamer-1.0" DESTINATION "${plugin_dest_dir}" COMPONENT Runtime)
|
install(DIRECTORY "${PKG_GSTREAMER_BASE_PLUGIN_DIR}" DESTINATION "${plugin_dest_dir}" COMPONENT Runtime)
|
||||||
install(DIRECTORY "/usr/local/Cellar/gst-plugins-good/1.18.1/lib/gstreamer-1.0" 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-bad/1.18.1_1/lib/gstreamer-1.0" 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-ugly/1.18.1/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.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(DIRECTORY "/usr/local/lib/gstreamer-1.0" DESTINATION "${plugin_dest_dir}" COMPONENT Runtime)
|
||||||
|
|
||||||
# install locally recompiled gst-plugins (because not included in brew package)
|
# # install locally recompiled gst-plugins (because not included in brew package)
|
||||||
set(LOCAL_BUILD_BAD "/Users/herbelin/Development/gst/gst-plugins-bad-1.18.0/build")
|
# set(LOCAL_BUILD_BAD "/usr/local/lib/gstreamer-1.0/")
|
||||||
install(FILES "${LOCAL_BUILD_BAD}/sys/applemedia/libgstapplemedia.dylib" DESTINATION "${plugin_dest_dir}/gstreamer-1.0" COMPONENT Runtime)
|
# install(FILES "${LOCAL_BUILD_BAD}/libgstapplemedia.dylib" DESTINATION "${plugin_dest_dir}/gstreamer-1.0" COMPONENT Runtime)
|
||||||
install(FILES "${LOCAL_BUILD_BAD}/ext/libde265/libgstde265.dylib" DESTINATION "${plugin_dest_dir}/gstreamer-1.0" COMPONENT Runtime)
|
# install(FILES "${LOCAL_BUILD_BAD}/libgstde265.dylib" DESTINATION "${plugin_dest_dir}/gstreamer-1.0" COMPONENT Runtime)
|
||||||
install(FILES "${LOCAL_BUILD_BAD}/ext/x265/libgstx265.dylib" DESTINATION "${plugin_dest_dir}/gstreamer-1.0" COMPONENT Runtime)
|
# install(FILES "${LOCAL_BUILD_BAD}/libgstx265.dylib" DESTINATION "${plugin_dest_dir}/gstreamer-1.0" COMPONENT Runtime)
|
||||||
|
|
||||||
|
# ICU DATA LIB GST dependency : undocumented and hacked here : seems to work
|
||||||
|
install(FILES "${ICU_LIBRARIES}" DESTINATION "${plugin_dest_dir}/gstreamer-1.0" COMPONENT Runtime)
|
||||||
|
message(STATUS "install icu4c from ${ICU_LIBRARY_DIRS}")
|
||||||
|
|
||||||
# package runtime fixup bundle
|
# package runtime fixup bundle
|
||||||
install(CODE "
|
install(CODE "
|
||||||
file(GLOB_RECURSE GSTPLUGINS \"\${CMAKE_INSTALL_PREFIX}/${plugin_dest_dir}/gstreamer-1.0/*.dylib\")
|
file(GLOB_RECURSE GSTPLUGINS \"\${CMAKE_INSTALL_PREFIX}/${plugin_dest_dir}/gstreamer-1.0/*.dylib\")
|
||||||
list(APPEND LIBS_PATH \"/usr/local/Cellar/icu4c/67.1/lib\")
|
list(APPEND LIBS_PATH \"\${ICU_LIBRARY_DIRS}\")
|
||||||
include(BundleUtilities)
|
include(BundleUtilities)
|
||||||
set(BU_CHMOD_BUNDLE_ITEMS TRUE)
|
set(BU_CHMOD_BUNDLE_ITEMS TRUE)
|
||||||
fixup_bundle(\"${APPS}\" \"\${GSTPLUGINS}\" \"${LIBS_PATH}\")
|
fixup_bundle(\"${APPS}\" \"\${GSTPLUGINS}\" \"${LIBS_PATH}\")
|
||||||
|
|||||||
@@ -295,11 +295,11 @@ std::list<std::string> DialogToolkit::selectImagesFileDialog(const std::string &
|
|||||||
std::list<std::string> files;
|
std::list<std::string> files;
|
||||||
|
|
||||||
std::string startpath = SystemToolkit::file_exists(path) ? path : SystemToolkit::home_path();
|
std::string startpath = SystemToolkit::file_exists(path) ? path : SystemToolkit::home_path();
|
||||||
char const * open_pattern[3] = { "*.tif", "*.jpg", "*.png" };
|
char const * open_pattern[6] = { "*.tif", "*.jpg", "*.png", "*.TIF", "*.JPG", "*.PNG" };
|
||||||
|
|
||||||
#if USE_TINYFILEDIALOG
|
#if USE_TINYFILEDIALOG
|
||||||
char const * open_file_names;
|
char const * open_file_names;
|
||||||
open_file_names = tinyfd_openFileDialog( "Select images", startpath.c_str(), 3, open_pattern, "Images", 1);
|
open_file_names = tinyfd_openFileDialog( "Select images", startpath.c_str(), 6, open_pattern, "Images", 1);
|
||||||
|
|
||||||
if (open_file_names) {
|
if (open_file_names) {
|
||||||
|
|
||||||
@@ -335,7 +335,7 @@ std::list<std::string> DialogToolkit::selectImagesFileDialog(const std::string &
|
|||||||
"_Open", GTK_RESPONSE_ACCEPT, NULL );
|
"_Open", GTK_RESPONSE_ACCEPT, NULL );
|
||||||
|
|
||||||
// set file filters
|
// set file filters
|
||||||
add_filter_file_dialog(dialog, 3, open_pattern, "All supported formats");
|
add_filter_file_dialog(dialog, 6, open_pattern, "All supported formats");
|
||||||
add_filter_any_file_dialog(dialog);
|
add_filter_any_file_dialog(dialog);
|
||||||
|
|
||||||
// multiple files
|
// multiple files
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ MultiFileSequence::MultiFileSequence(const std::list<std::string> &list_files)
|
|||||||
if ( SystemToolkit::extension_filename(location).empty() ||
|
if ( SystemToolkit::extension_filename(location).empty() ||
|
||||||
SystemToolkit::path_filename(location) != SystemToolkit::path_filename(list_files.front()) ||
|
SystemToolkit::path_filename(location) != SystemToolkit::path_filename(list_files.front()) ||
|
||||||
list_files.size() != max - min + 1 ) {
|
list_files.size() != max - min + 1 ) {
|
||||||
|
Log::Info("MultiFileSequence '%s' invalid.", location.c_str());
|
||||||
location.clear();
|
location.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -47,6 +48,8 @@ MultiFileSequence::MultiFileSequence(const std::list<std::string> &list_files)
|
|||||||
width = media.width;
|
width = media.width;
|
||||||
height = media.height;
|
height = media.height;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
Log::Info("MultiFileSequence '%s' does not list images.", location.c_str());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ endif()
|
|||||||
# Find the plugin libraries
|
# Find the plugin libraries
|
||||||
include(MacroFindGStreamerLibrary)
|
include(MacroFindGStreamerLibrary)
|
||||||
|
|
||||||
macro(_find_gst_PLUGINS_BAD_component _name _header)
|
macro(_find_gst_plugins_bad_component _name _header)
|
||||||
find_gstreamer_library(${_name} ${_header} ${GSTREAMER_ABI_VERSION})
|
find_gstreamer_library(${_name} ${_header} ${GSTREAMER_ABI_VERSION})
|
||||||
set(_GSTREAMER_PLUGINS_BAD_EXTRA_VARIABLES ${_GSTREAMER_PLUGINS_BAD_EXTRA_VARIABLES}
|
set(_GSTREAMER_PLUGINS_BAD_EXTRA_VARIABLES ${_GSTREAMER_PLUGINS_BAD_EXTRA_VARIABLES}
|
||||||
GSTREAMER_${_name}_LIBRARY GSTREAMER_${_name}_INCLUDE_DIR)
|
GSTREAMER_${_name}_LIBRARY GSTREAMER_${_name}_INCLUDE_DIR)
|
||||||
@@ -39,31 +39,17 @@ endmacro()
|
|||||||
foreach(_component ${GStreamerPluginsBad_FIND_COMPONENTS})
|
foreach(_component ${GStreamerPluginsBad_FIND_COMPONENTS})
|
||||||
if (${_component} STREQUAL "player")
|
if (${_component} STREQUAL "player")
|
||||||
_find_gst_plugins_bad_component(PLAYER gstplayer.h)
|
_find_gst_plugins_bad_component(PLAYER gstplayer.h)
|
||||||
elseif (${_component} STREQUAL "audio")
|
elseif (${_component} STREQUAL "webrtc")
|
||||||
_find_gst_plugins_bad_component(AUDIO audio.h)
|
_find_gst_plugins_bad_component(WEBRTC webrtc.h)
|
||||||
elseif (${_component} STREQUAL "fft")
|
elseif (${_component} STREQUAL "mpegts")
|
||||||
_find_gst_plugins_bad_component(FFT gstfft.h)
|
_find_gst_plugins_bad_component(MPEGTS mpegts.h)
|
||||||
elseif (${_component} STREQUAL "riff")
|
|
||||||
_find_gst_plugins_bad_component(RIFF riff-ids.h)
|
|
||||||
elseif (${_component} STREQUAL "rtp")
|
|
||||||
_find_gst_plugins_bad_component(RTP gstrtpbuffer.h)
|
|
||||||
elseif (${_component} STREQUAL "rtsp")
|
|
||||||
_find_gst_plugins_bad_component(RTSP gstrtspdefs.h)
|
|
||||||
elseif (${_component} STREQUAL "sdp")
|
|
||||||
_find_gst_plugins_bad_component(SDP gstsdp.h)
|
|
||||||
elseif (${_component} STREQUAL "tag")
|
|
||||||
_find_gst_plugins_bad_component(TAG tag.h)
|
|
||||||
elseif (${_component} STREQUAL "pbutils")
|
|
||||||
_find_gst_plugins_bad_component(PBUTILS pbutils.h)
|
|
||||||
elseif (${_component} STREQUAL "video")
|
|
||||||
_find_gst_plugins_bad_component(VIDEO video.h)
|
|
||||||
elseif (${_component} STREQUAL "gl")
|
|
||||||
_find_gst_plugins_bad_component(GL gstglconfig.h)
|
|
||||||
else()
|
else()
|
||||||
message (AUTHOR_WARNING "FindGStreamerPluginBad.cmake: Invalid component \"${_component}\" was specified")
|
message (AUTHOR_WARNING "FindGStreamerPluginBad.cmake: Invalid component \"${_component}\" was specified")
|
||||||
endif()
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
|
get_filename_component(_GSTREAMER_BAD_LIB_DIR ${GSTREAMER_PLAYER_LIBRARY} PATH)
|
||||||
|
set(PKG_GSTREAMER_BAD_PLUGIN_DIR ${_GSTREAMER_BAD_LIB_DIR}/gstreamer-${GSTREAMER_ABI_VERSION})
|
||||||
|
|
||||||
# Version check
|
# Version check
|
||||||
if (GStreamerPluginsBad_FIND_VERSION)
|
if (GStreamerPluginsBad_FIND_VERSION)
|
||||||
|
|||||||
@@ -64,6 +64,8 @@ foreach(_component ${GStreamerPluginsBase_FIND_COMPONENTS})
|
|||||||
endif()
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
|
get_filename_component(_GSTREAMER_BASE_LIB_DIR ${GSTREAMER_APP_LIBRARY} PATH)
|
||||||
|
set(PKG_GSTREAMER_BASE_PLUGIN_DIR ${_GSTREAMER_BASE_LIB_DIR}/gstreamer-${GSTREAMER_ABI_VERSION})
|
||||||
|
|
||||||
# Version check
|
# Version check
|
||||||
if (GStreamerPluginsBase_FIND_VERSION)
|
if (GStreamerPluginsBase_FIND_VERSION)
|
||||||
|
|||||||
@@ -2,11 +2,24 @@
|
|||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
<plist version="1.0">
|
<plist version="1.0">
|
||||||
<dict>
|
<dict>
|
||||||
<key>NSHighResolutionCapable</key>
|
<key>Apl</key>
|
||||||
<true/>
|
<string></string>
|
||||||
<key>NSPrincipalClass</key>
|
<key>LSAppNapIsDisabled</key>
|
||||||
<string>NSApplication</string>
|
<true/>
|
||||||
<key>CFBundleDocumentTypes</key>
|
<key>NSCameraUsageDescription</key>
|
||||||
|
<string>vimix needs to access the camera to enable camera sources.</string>
|
||||||
|
<key>LSMinimumSystemVersion</key>
|
||||||
|
<string>10.13.0</string>
|
||||||
|
<key>NSHighResolutionCapable</key>
|
||||||
|
<true/>
|
||||||
|
<key>NSPrincipalClass</key>
|
||||||
|
<string>NSApplication</string>
|
||||||
|
<key>NSAppTransportSecurity</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSAllowsArbitraryLoads</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
<key>CFBundleDocumentTypes</key>
|
||||||
<array>
|
<array>
|
||||||
<dict>
|
<dict>
|
||||||
<key>CFBundleTypeName</key>
|
<key>CFBundleTypeName</key>
|
||||||
@@ -19,35 +32,33 @@
|
|||||||
<string>Owner</string>
|
<string>Owner</string>
|
||||||
<key>LSItemContentTypes</key>
|
<key>LSItemContentTypes</key>
|
||||||
<array>
|
<array>
|
||||||
<string>com.bhbn.mix</string>
|
<string>com.bhbn.mix</string>
|
||||||
</array>
|
</array>
|
||||||
</dict>
|
</dict>
|
||||||
</array>
|
</array>
|
||||||
<key>CFBundleExecutable</key>
|
<key>CFBundleExecutable</key>
|
||||||
<string>vimix</string>
|
<string>vimix</string>
|
||||||
<key>CFBundleGetInfoString</key>
|
<key>CFBundleGetInfoString</key>
|
||||||
<string>Vimix Bundle</string>
|
<string>vimix - Video Live Mix</string>
|
||||||
<key>CFBundleIconFile</key>
|
<key>CFBundleIconFile</key>
|
||||||
<string>vimix.icns</string>
|
<string>vimix.icns</string>
|
||||||
<key>CFBundleIdentifier</key>
|
<key>CFBundleIdentifier</key>
|
||||||
<string>com.bhbn.vimix</string>
|
<string>com.bhbn.vimix</string>
|
||||||
<key>CFBundleInfoDictionaryVersion</key>
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
<string>6.0</string>
|
<string>6.0</string>
|
||||||
<key>CFBundleLongVersionString</key>
|
<key>CFBundleLongVersionString</key>
|
||||||
<string>version 1.0</string>
|
<string>0.6.0</string>
|
||||||
<key>CFBundleName</key>
|
<key>CFBundleName</key>
|
||||||
<string>vimix</string>
|
<string>vimix</string>
|
||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>APPL</string>
|
<string>APPL</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>0.1</string>
|
<string>0.6</string>
|
||||||
<key>CFBundleSignature</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>????</string>
|
<string>0.6</string>
|
||||||
<key>CFBundleVersion</key>
|
<key>CSResourcesFileMapped</key>
|
||||||
<string>1.0</string>
|
<true/>
|
||||||
<key>CSResourcesFileMapped</key>
|
<key>NSHumanReadableCopyright</key>
|
||||||
<true/>
|
<string>Bruno Herbelin</string>
|
||||||
<key>NSHumanReadableCopyright</key>
|
|
||||||
<string>Bruno Herbelin</string>
|
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
|
|||||||
8
osx/vimixRelease.entitlements
Normal file
8
osx/vimixRelease.entitlements
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>com.apple.security.device.camera</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
Reference in New Issue
Block a user