Skip to content
Snippets Groups Projects
Commit 45ec80fb authored by BtbN's avatar BtbN
Browse files

Full rewrite of all CMakeLists

CMake now works on all platforms
parent 8fa309c9
No related branches found
No related tags found
No related merge requests found
Showing
with 1464 additions and 4 deletions
......@@ -77,6 +77,9 @@ tags
*.lnk
*.chm
*~
.DS_Store
*/.DS_Store
*/**/.DS_Store
*.o.d
*.ninja
......@@ -84,10 +87,7 @@ tags
.dirstamp
#cmake
cmake_install.cmake
CMakeCache.txt
CMakeFiles/
CMakeScripts/
cmbuild/
#xcode
*.xcodeproj/
cmake_minimum_required(VERSION 2.8.11)
project(obs-studio)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
if(NOT _one_time_action_done)
if(MSVC)
file(GENERATE
OUTPUT "${CMAKE_BINARY_DIR}/ALL_BUILD.vcxproj.user"
INPUT "${CMAKE_SOURCE_DIR}/cmake/ALL_BUILD.vcxproj.user.in"
CONDITION ${MSVC})
endif()
set(_one_time_action_done TRUE CACHE INTERNAL "")
endif()
include(ObsHelpers)
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE RelWithDebInfo)
endif()
find_package(CXX11 REQUIRED)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CXX11_FLAGS}")
if(${CMAKE_C_COMPILER_ID} MATCHES "Clang" OR ${CMAKE_CXX_COMPILER_ID} MATCHES "Clang")
set(CMAKE_COMPILER_IS_CLANG TRUE)
endif()
if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANG)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-function -Wno-unused-parameter -Wall -Wextra")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99 -Wno-unused-function -Wno-unused-parameter -Wall -Wextra")
option(USE_LIBC++ "Use libc++ instead of libstdc++" ${APPLE})
if(USE_LIBC++)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
endif()
endif()
if(WIN32)
add_definitions(-DUNICODE -D_UNICODE)
endif()
if(APPLE)
set(CMAKE_MACOSX_RPATH TRUE)
set(CMAKE_INSTALL_RPATH
"${CMAKE_INSTALL_RPATH};@loader_path/;@executable_path/")
set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
endif()
add_subdirectory(deps)
add_subdirectory(libobs)
if(WIN32)
add_subdirectory(libobs-d3d11)
add_subdirectory(libobs-d3d9)
endif()
add_subdirectory(libobs-opengl)
add_subdirectory(obs)
add_subdirectory(plugins)
add_subdirectory(test)
obs_install_additional()
# CPack Configuration
if(APPLE)
set(CPACK_GENERATOR "Bundle")
endif()
set(CPACK_PACKAGE_NAME "OBS Studio")
set(CPACK_PACKAGE_VENDOR "obsproject.com")
set(CPACK_PACKAGE_VERSION "0.0.1")
set(CPACK_PACKAGE_VERSION_MAJOR "0")
set(CPACK_PACKAGE_VERSION_MINOR "0")
set(CPACK_PACKAGE_VERSION_PATCH "1")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "OBS Studio - Multi-platform broadcasting software")
set(CPACK_PACKAGE_EXECUTABLES "obs;OBS Studio")
set(CPACK_CREATE_DESKTOP_LINKS "obs")
set(CPACK_BUNDLE_NAME "OBS Studio")
set(CPACK_BUNDLE_PLIST "${CMAKE_SOURCE_DIR}/cmake/osxbundle/Info.plist")
set(CPACK_BUNDLE_ICON "${CMAKE_SOURCE_DIR}/cmake/osxbundle/obs.icns")
set(CPACK_BUNDLE_STARTUP_COMMAND "${CMAKE_SOURCE_DIR}/cmake/osxbundle/obslaunch.sh")
set(CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL ON)
set(CPACK_NSIS_EXECUTABLES_DIRECTORY ".")
set(CPACK_NSIS_MODIFY_PATH ON)
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
SET(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "OBSStudio64")
SET(CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES64")
else()
if(WIN32)
set(CPACK_PACKAGE_NAME "OBS Studio (32bit)")
endif()
SET(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "OBSStudio32")
SET(CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES32")
endif()
include(CPack)
*
!.gitignore
\ No newline at end of file
*
!.gitignore
\ No newline at end of file
*
!.gitignore
\ No newline at end of file
*
!.gitignore
\ No newline at end of file
*
!.gitignore
\ No newline at end of file
*
!.gitignore
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'">
<LocalDebuggerCommand>$(SolutionDir)rundir\$(Configuration)\obs.exe</LocalDebuggerCommand>
<LocalDebuggerWorkingDirectory>$(SolutionDir)rundir\$(Configuration)</LocalDebuggerWorkingDirectory>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LocalDebuggerCommand>$(SolutionDir)rundir\$(Configuration)\obs.exe</LocalDebuggerCommand>
<LocalDebuggerWorkingDirectory>$(SolutionDir)rundir\$(Configuration)</LocalDebuggerWorkingDirectory>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LocalDebuggerCommand>$(SolutionDir)rundir\$(Configuration)\obs.exe</LocalDebuggerCommand>
<LocalDebuggerWorkingDirectory>$(SolutionDir)rundir\$(Configuration)</LocalDebuggerWorkingDirectory>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='MinSizeRel|x64'">
<LocalDebuggerCommand>$(SolutionDir)rundir\$(Configuration)\obs.exe</LocalDebuggerCommand>
<LocalDebuggerWorkingDirectory>$(SolutionDir)rundir\$(Configuration)</LocalDebuggerWorkingDirectory>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='RelWithDebInfo|Win32'">
<LocalDebuggerCommand>$(SolutionDir)rundir\$(Configuration)\obs.exe</LocalDebuggerCommand>
<LocalDebuggerWorkingDirectory>$(SolutionDir)rundir\$(Configuration)</LocalDebuggerWorkingDirectory>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LocalDebuggerCommand>$(SolutionDir)rundir\$(Configuration)\obs.exe</LocalDebuggerCommand>
<LocalDebuggerWorkingDirectory>$(SolutionDir)rundir\$(Configuration)</LocalDebuggerWorkingDirectory>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LocalDebuggerCommand>$(SolutionDir)rundir\$(Configuration)\obs.exe</LocalDebuggerCommand>
<LocalDebuggerWorkingDirectory>$(SolutionDir)rundir\$(Configuration)</LocalDebuggerWorkingDirectory>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='MinSizeRel|Win32'">
<LocalDebuggerCommand>$(SolutionDir)rundir\$(Configuration)\obs.exe</LocalDebuggerCommand>
<LocalDebuggerWorkingDirectory>$(SolutionDir)rundir\$(Configuration)</LocalDebuggerWorkingDirectory>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
</PropertyGroup>
</Project>
\ No newline at end of file
# - Finds if the compiler has C++11 support
# This module can be used to detect compiler flags for using C++11, and checks
# a small subset of the language.
#
# The following variables are set:
# CXX11_FLAGS - flags to add to the CXX compiler for C++11 support
# CXX11_FOUND - true if the compiler supports C++11
#
if(CXX11_FLAGS)
set(CXX11_FOUND TRUE)
return()
endif()
include(CheckCXXSourceCompiles)
include(FindPackageHandleStandardArgs)
if(MSVC)
set(CXX11_FLAG_CANDIDATES
" "
)
else()
set(CXX11_FLAG_CANDIDATES
#gcc
"-std=gnu++11"
"-std=gnu++0x"
#Gnu and Intel Linux
"-std=c++11"
"-std=c++0x"
#Microsoft Visual Studio, and everything that automatically accepts C++11
" "
#Intel windows
"/Qstd=c++11"
"/Qstd=c++0x"
)
endif()
set(CXX11_TEST_SOURCE
"
int main()
{
int n[] = {4,7,6,1,2};
int r;
auto f = [&](int j) { r = j; };
for (auto i : n)
f(i);
return 0;
}
")
foreach(FLAG ${CXX11_FLAG_CANDIDATES})
set(SAFE_CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS}")
set(CMAKE_REQUIRED_FLAGS "${FLAG}")
unset(CXX11_FLAG_DETECTED CACHE)
message(STATUS "Try C++11 flag = [${FLAG}]")
check_cxx_source_compiles("${CXX11_TEST_SOURCE}" CXX11_FLAG_DETECTED)
set(CMAKE_REQUIRED_FLAGS "${SAFE_CMAKE_REQUIRED_FLAGS}")
if(CXX11_FLAG_DETECTED)
set(CXX11_FLAGS_INTERNAL "${FLAG}")
break()
endif(CXX11_FLAG_DETECTED)
endforeach(FLAG ${CXX11_FLAG_CANDIDATES})
set(CXX11_FLAGS "${CXX11_FLAGS_INTERNAL}" CACHE STRING "C++11 Flags")
find_package_handle_standard_args(CXX11 DEFAULT_MSG CXX11_FLAGS)
mark_as_advanced(CXX11_FLAGS)
#-------------------------------------------------------------------
# This file is part of the CMake build system for OGRE
# (Object-oriented Graphics Rendering Engine)
# For the latest info, see http://www.ogre3d.org/
#
# The contents of this file are placed in the public domain. Feel
# free to make use of it in any way you like.
#-------------------------------------------------------------------
# -----------------------------------------------------------------------------
# Find DirectX SDK
# Define:
# DirectX_FOUND
# DirectX_INCLUDE_DIR
# DirectX_LIBRARY
# DirectX_ROOT_DIR
if (DirectX_D3D10_INCLUDE_DIR AND DirectX_D3D10_LIBRARY)
set(DirectX_D3D10_FOUND TRUE)
endif()
if (DirectX_D3D11_INCLUDE_DIR AND DirectX_D3D11_LIBRARY)
set(DirectX_D3D11_FOUND TRUE)
endif()
if(DirectX_INCLUDE_DIR AND DirectX_LIBRARY)
set(DirectX_FOUND TRUE)
return()
endif()
macro(findpkg_begin PREFIX)
if (NOT ${PREFIX}_FIND_QUIETLY)
message(STATUS "Looking for ${PREFIX}...")
endif ()
endmacro(findpkg_begin)
macro(getenv_path VAR)
set(ENV_${VAR} $ENV{${VAR}})
# replace won't work if var is blank
if (ENV_${VAR})
string( REGEX REPLACE "\\\\" "/" ENV_${VAR} ${ENV_${VAR}} )
endif ()
endmacro(getenv_path)
macro(create_search_paths PREFIX)
foreach(dir ${${PREFIX}_PREFIX_PATH})
set(${PREFIX}_INC_SEARCH_PATH ${${PREFIX}_INC_SEARCH_PATH}
${dir}/include ${dir}/include/${PREFIX} ${dir}/Headers ${dir}/Include/um)
set(${PREFIX}_LIB_SEARCH_PATH ${${PREFIX}_LIB_SEARCH_PATH}
${dir}/lib ${dir}/lib/${PREFIX} ${dir}/Libs ${dir}/Lib/winv6.3/um ${dir}/Lib/win8/um ${dir}/Lib/winv6.3/um)
endforeach(dir)
set(${PREFIX}_FRAMEWORK_SEARCH_PATH ${${PREFIX}_PREFIX_PATH})
endmacro(create_search_paths)
macro(clear_if_changed TESTVAR)
# test against internal check variable
if (NOT "${${TESTVAR}}" STREQUAL "${${TESTVAR}_INT_CHECK}")
message(STATUS "${TESTVAR} changed.")
foreach(var ${ARGN})
set(${var} "NOTFOUND" CACHE STRING "x" FORCE)
endforeach(var)
endif ()
set(${TESTVAR}_INT_CHECK ${${TESTVAR}} CACHE INTERNAL "x" FORCE)
endmacro(clear_if_changed)
macro(findpkg_finish PREFIX)
# skip if already processed during this run
if (NOT ${PREFIX}_FOUND)
if (${PREFIX}_INCLUDE_DIR AND ${PREFIX}_LIBRARY)
set(${PREFIX}_FOUND TRUE)
set(${PREFIX}_INCLUDE_DIRS ${${PREFIX}_INCLUDE_DIR})
set(${PREFIX}_LIBRARIES ${${PREFIX}_LIBRARY})
if (NOT ${PREFIX}_FIND_QUIETLY)
message(STATUS "Found ${PREFIX}: ${${PREFIX}_LIBRARIES}")
endif ()
else ()
if (NOT ${PREFIX}_FIND_QUIETLY)
message(STATUS "Could not locate ${PREFIX}")
endif ()
if (${PREFIX}_FIND_REQUIRED)
message(FATAL_ERROR "Required library ${PREFIX} not found! Install the library (including dev packages) and try again. If the library is already installed, set the missing variables manually in cmake.")
endif ()
endif ()
mark_as_advanced(${PREFIX}_INCLUDE_DIR ${PREFIX}_LIBRARY ${PREFIX}_LIBRARY_REL ${PREFIX}_LIBRARY_DBG ${PREFIX}_LIBRARY_FWK)
endif ()
endmacro(findpkg_finish)
if(WIN32) # The only platform it makes sense to check for DirectX SDK
findpkg_begin(DirectX)
# Get path, convert backslashes as ${ENV_DXSDK_DIR}
getenv_path(DXSDK_DIR)
getenv_path(DIRECTX_HOME)
getenv_path(DIRECTX_ROOT)
getenv_path(DIRECTX_BASE)
getenv_path(WindowsSDK80Path)
getenv_path(WindowsSDK81Path)
# construct search paths
set(DirectX_PREFIX_PATH
"${WindowsSDK81Path}" "${ENV_WindowsSDK81Path}"
"${WindowsSDK80Path}" "${ENV_WindowsSDK80Path}"
"${DXSDK_DIR}" "${ENV_DXSDK_DIR}"
"${DIRECTX_HOME}" "${ENV_DIRECTX_HOME}"
"${DIRECTX_ROOT}" "${ENV_DIRECTX_ROOT}"
"${DIRECTX_BASE}" "${ENV_DIRECTX_BASE}"
"C:/apps_x86/Microsoft DirectX SDK*"
"C:/Program Files (x86)/Microsoft DirectX SDK*"
"C:/apps/Microsoft DirectX SDK*"
"C:/Program Files/Microsoft DirectX SDK*"
"$ENV{ProgramFiles}/Microsoft DirectX SDK*"
)
create_search_paths(DirectX)
# redo search if prefix path changed
clear_if_changed(DirectX_PREFIX_PATH
DirectX_LIBRARY
DirectX_INCLUDE_DIR
DirectX_ROOT_DIR
)
find_path(DirectX_INCLUDE_DIR NAMES d3d9.h HINTS ${DirectX_INC_SEARCH_PATH})
# dlls are in DirectX_ROOT_DIR/Developer Runtime/x64|x86
# lib files are in DirectX_ROOT_DIR/Lib/x64|x86
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(DirectX_LIBPATH_SUFFIX "x64")
else()
set(DirectX_LIBPATH_SUFFIX "x86")
endif()
find_library(DirectX_LIBRARY NAMES d3d9 HINTS ${DirectX_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX_LIBPATH_SUFFIX})
find_library(DirectX_D3DX9_LIBRARY NAMES d3dx9 HINTS ${DirectX_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX_LIBPATH_SUFFIX})
find_library(DirectX_DXERR9_LIBRARY NAMES dxerr HINTS ${DirectX_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX_LIBPATH_SUFFIX})
find_library(DirectX_DXGUID_LIBRARY NAMES dxguid HINTS ${DirectX_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX_LIBPATH_SUFFIX})
find_library(DirectX_DINPUT8_LIBRARY NAMES dinput8 HINTS ${DirectX_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX_LIBPATH_SUFFIX})
find_library(DirectX_XINPUT_LIBRARY NAMES xinput HINTS ${DirectX_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX_LIBPATH_SUFFIX})
find_library(DirectX_DXGI_LIBRARY NAMES dxgi HINTS ${DirectX_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX_LIBPATH_SUFFIX})
find_library(DirectX_D3DCOMPILER_LIBRARY NAMES d3dcompiler HINTS ${DirectX_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX_LIBPATH_SUFFIX})
if(DirectX_INCLUDE_DIR)
set(DirectX_ROOT_DIR "${DirectX_INCLUDE_DIR}/..")
endif(DirectX_INCLUDE_DIR)
findpkg_finish(DirectX)
set(DirectX_LIBRARIES
${DirectX_LIBRARIES}
${DirectX_D3DX9_LIBRARY}
${DirectX_DXERR9_LIBRARY}
${DirectX_DXGUID_LIBRARY}
${DirectX_DINPUT8_LIBRARY}
${DirectX_DXGI_LIBRARY}
${DirectX_D3DCOMPILER_LIBRARY}
)
# look for D3D10.1 components
if (DirectX_FOUND)
find_path(DirectX_D3D10_INCLUDE_DIR NAMES d3d10_1shader.h HINTS ${DirectX_INC_SEARCH_PATH} NO_DEFAULT_PATH)
get_filename_component(DirectX_LIBRARY_DIR "${DirectX_LIBRARY}" PATH)
message(STATUS "DX lib dir: ${DirectX_LIBRARY_DIR}")
find_library(DirectX_D3D10_LIBRARY NAMES d3d10 HINTS ${DirectX_LIBRARY_DIR} NO_DEFAULT_PATH)
find_library(DirectX_D3DX10_LIBRARY NAMES d3dx10 HINTS ${DirectX_LIBRARY_DIR} NO_DEFAULT_PATH)
if (DirectX_D3D10_INCLUDE_DIR AND DirectX_D3D10_LIBRARY)
set(DirectX_D3D10_FOUND TRUE)
set(DirectX_D3D10_INCLUDE_DIRS ${DirectX_D3D10_INCLUDE_DIR} CACHE PATH "D3D10 Include Dirs")
set(DirectX_D3D10_LIBRARIES ${DirectX_D3D10_LIBRARY} CACHE STRING "D3D10 Libraries")
endif ()
endif ()
# look for D3D11 components
if (DirectX_FOUND)
find_path(DirectX_D3D11_INCLUDE_DIR NAMES D3D11Shader.h HINTS ${DirectX_INC_SEARCH_PATH} NO_DEFAULT_PATH)
get_filename_component(DirectX_LIBRARY_DIR "${DirectX_LIBRARY}" PATH)
message(STATUS "DX lib dir: ${DirectX_LIBRARY_DIR}")
find_library(DirectX_D3D11_LIBRARY NAMES d3d11 d3d11_beta HINTS ${DirectX_LIBRARY_DIR} NO_DEFAULT_PATH)
find_library(DirectX_D3DX11_LIBRARY NAMES d3dx11 HINTS ${DirectX_LIBRARY_DIR} NO_DEFAULT_PATH)
if (DirectX_D3D11_INCLUDE_DIR AND DirectX_D3D11_LIBRARY)
set(DirectX_D3D11_FOUND TRUE)
set(DirectX_D3D11_INCLUDE_DIRS ${DirectX_D3D11_INCLUDE_DIR} CACHE PATH "D3D11 Include Dirs")
set(DirectX_D3D11_LIBRARIES ${DirectX_D3D11_LIBRARY} CACHE STRING "D3D11 Libraries")
endif ()
endif ()
endif(WIN32)
# Once done these will be defined:
#
# Libavcodec_FOUND
# Libavcodec_INCLUDE_DIR
# Libavcodec_LIBRARIES
#
if(Libavcodec_INCLUDE_DIR AND Libavcodec_LIBRARIES)
set(Libavcodec_FOUND TRUE)
else()
find_package(PkgConfig QUIET)
if (PKG_CONFIG_FOUND)
pkg_check_modules(_AVCODEC QUIET libavcodec)
endif()
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(_lib_suffix 64)
else()
set(_lib_suffix 32)
endif()
find_path(FFMPEG_INCLUDE_DIR
NAMES libavcodec/avcodec.h
HINTS
ENV FFmpegPath
${_AVCODEC_INCLUDE_DIRS}
/usr/include /usr/local/include /opt/local/include /sw/include
PATH_SUFFIXES ffmpeg libav)
find_library(AVCODEC_LIB
NAMES avcodec
HINTS ${_AVCODEC_LIBRARY_DIRS} ${FFMPEG_INCLUDE_DIR}/../lib ${FFMPEG_INCLUDE_DIR}/lib${_lib_suffix} /usr/lib /usr/local/lib /opt/local/lib /sw/lib)
set(Libavcodec_INCLUDE_DIR ${FFMPEG_INCLUDE_DIR} CACHE PATH "Libavcodec include dir")
set(Libavcodec_LIBRARIES ${AVCODEC_LIB} CACHE STRING "Libavcodec libraries")
find_package_handle_standard_args(Libavcodec DEFAULT_MSG AVCODEC_LIB FFMPEG_INCLUDE_DIR)
mark_as_advanced(FFMPEG_INCLUDE_DIR AVCODEC_LIB)
endif()
# Once done these will be defined:
#
# Libavformat_FOUND
# Libavformat_INCLUDE_DIR
# Libavformat_LIBRARIES
#
if(Libavformat_INCLUDE_DIR AND Libavformat_LIBRARIES)
set(Libavformat_FOUND TRUE)
else()
find_package(PkgConfig QUIET)
if (PKG_CONFIG_FOUND)
pkg_check_modules(_AVFORMAT QUIET libavformat)
endif()
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(_lib_suffix 64)
else()
set(_lib_suffix 32)
endif()
find_path(FFMPEG_INCLUDE_DIR
NAMES libavformat/avformat.h
HINTS
ENV FFmpegPath
${_AVFORMAT_INCLUDE_DIRS}
/usr/include /usr/local/include /opt/local/include /sw/include
PATH_SUFFIXES ffmpeg libav)
find_library(AVFORMAT_LIB
NAMES avformat
HINTS ${_AVFORMAT_LIBRARY_DIRS} ${FFMPEG_INCLUDE_DIR}/../lib ${FFMPEG_INCLUDE_DIR}/lib${_lib_suffix} /usr/lib /usr/local/lib /opt/local/lib /sw/lib)
set(Libavformat_INCLUDE_DIR ${FFMPEG_INCLUDE_DIR} CACHE PATH "Libavformat include dir")
set(Libavformat_LIBRARIES ${AVFORMAT_LIB} CACHE STRING "Libavformat libraries")
find_package_handle_standard_args(Libavformat DEFAULT_MSG AVFORMAT_LIB FFMPEG_INCLUDE_DIR)
mark_as_advanced(FFMPEG_INCLUDE_DIR AVFORMAT_LIB)
endif()
# Once done these will be defined:
#
# Libavutil_FOUND
# Libavutil_INCLUDE_DIR
# Libavutil_LIBRARIES
#
if(Libavutil_INCLUDE_DIR AND Libavutil_LIBRARIES)
set(Libavutil_FOUND TRUE)
else()
find_package(PkgConfig QUIET)
if (PKG_CONFIG_FOUND)
pkg_check_modules(_AVUTIL QUIET libavutil)
endif()
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(_lib_suffix 64)
else()
set(_lib_suffix 32)
endif()
find_path(FFMPEG_INCLUDE_DIR
NAMES libavutil/avutil.h
HINTS
ENV FFmpegPath
${_AVUTIL_INCLUDE_DIRS}
/usr/include /usr/local/include /opt/local/include /sw/include
PATH_SUFFIXES ffmpeg libav)
find_library(AVUTIL_LIB
NAMES avutil
HINTS ${_AVUTIL_LIBRARY_DIRS} ${FFMPEG_INCLUDE_DIR}/../lib ${FFMPEG_INCLUDE_DIR}/lib${_lib_suffix} /usr/lib /usr/local/lib /opt/local/lib /sw/lib)
set(Libavutil_INCLUDE_DIR ${FFMPEG_INCLUDE_DIR} CACHE PATH "Libavutil include dir")
set(Libavutil_LIBRARIES ${AVUTIL_LIB} CACHE STRING "Libavutil libraries")
find_package_handle_standard_args(Libavutil DEFAULT_MSG AVUTIL_LIB FFMPEG_INCLUDE_DIR)
mark_as_advanced(FFMPEG_INCLUDE_DIR AVUTIL_LIB)
endif()
# Once done these will be defined:
#
# Libswresample_FOUND
# Libswresample_INCLUDE_DIR
# Libswresample_LIBRARIES
#
if(Libswresample_INCLUDE_DIR AND Libswresample_LIBRARIES)
set(Libswresample_FOUND TRUE)
else()
find_package(PkgConfig QUIET)
if (PKG_CONFIG_FOUND)
pkg_check_modules(_SWRESAMPLE QUIET libswresample)
endif()
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(_lib_suffix 64)
else()
set(_lib_suffix 32)
endif()
find_path(FFMPEG_INCLUDE_DIR
NAMES libswresample/swresample.h
HINTS
ENV FFmpegPath
${_SWRESAMPLE_INCLUDE_DIRS}
/usr/include /usr/local/include /opt/local/include /sw/include
PATH_SUFFIXES ffmpeg libav)
find_library(SWRESAMPLE_LIB
NAMES swresample
HINTS ${_SWRESAMPLE_LIBRARY_DIRS} ${FFMPEG_INCLUDE_DIR}/../lib ${FFMPEG_INCLUDE_DIR}/lib${_lib_suffix} /usr/lib /usr/local/lib /opt/local/lib /sw/lib)
set(Libswresample_INCLUDE_DIR ${FFMPEG_INCLUDE_DIR} CACHE PATH "Libswresample include dir")
set(Libswresample_LIBRARIES ${SWRESAMPLE_LIB} CACHE STRING "Libswresample libraries")
find_package_handle_standard_args(Libswresample DEFAULT_MSG SWRESAMPLE_LIB FFMPEG_INCLUDE_DIR)
mark_as_advanced(FFMPEG_INCLUDE_DIR SWRESAMPLE_LIB)
endif()
# Once done these will be defined:
#
# Libx264_FOUND
# Libx264_INCLUDE_DIR
# Libx264_LIBRARIES
#
if(Libx264_INCLUDE_DIR AND Libx264_LIBRARIES)
set(Libx264_FOUND TRUE)
else()
find_package(PkgConfig QUIET)
if (PKG_CONFIG_FOUND)
pkg_check_modules(_X264 QUIET x264)
endif()
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(_lib_suffix 64)
else()
set(_lib_suffix 32)
endif()
find_path(X264_INCLUDE_DIR
NAMES x264.h
HINTS
ENV x264Path
${_X264_INCLUDE_DIRS}
/usr/include /usr/local/include /opt/local/include /sw/include)
find_library(X264_LIB
NAMES x264 libx264
HINTS ${_X264_LIBRARY_DIRS} ${X264_INCLUDE_DIR}/../lib ${X264_INCLUDE_DIR}/lib${_lib_suffix} /usr/lib /usr/local/lib /opt/local/lib /sw/lib)
set(Libx264_INCLUDE_DIR ${X264_INCLUDE_DIR} CACHE PATH "x264 include dir")
set(Libx264_LIBRARIES ${X264_LIB} CACHE STRING "x264 libraries")
find_package_handle_standard_args(Libx264 DEFAULT_MSG X264_LIB X264_INCLUDE_DIR)
mark_as_advanced(X264_INCLUDE_DIR X264_LIB)
endif()
[Settings]
NumFields=1
[Field 1]
Type=CheckBox
Text=Create @CPACK_PACKAGE_NAME@ Desktop Icon
Left=0
Right=-1
Top=10
Bottom=-1
State=1
This diff is collapsed.
set(OBS_OUTPUT_DIR "${CMAKE_BINARY_DIR}/rundir")
set(OBS_EXECUTABLE_DESTINATION "bin")
set(OBS_LIBRARY_DESTINATION "lib")
set(OBS_PLUGIN_DESTINATION "lib/obs-plugins")
set(OBS_DATA_DESTINATION "share/obs")
if(WIN32 OR APPLE)
set(_struct_def FALSE)
else()
set(_struct_def TRUE)
endif()
option(UNIX_STRUCTURE "Build with standard unix filesystem structure" ${_struct_def})
if(NOT UNIX_STRUCTURE)
set(OBS_EXECUTABLE_DESTINATION ".")
set(OBS_LIBRARY_DESTINATION ".")
set(OBS_PLUGIN_DESTINATION "obs-plugins")
set(OBS_DATA_DESTINATION "data")
else()
add_definitions(-DOBS_INSTALL_PREFIX="${CMAKE_INSTALL_PREFIX}/")
endif()
add_definitions(-DOBS_DATA_PATH="${OBS_DATA_DESTINATION}")
function(obs_install_additional)
set(addfdir "${CMAKE_SOURCE_DIR}/additional_install_files")
if(DEFINED ENV{obsAdditionalInstallFiles})
set(addfdir "$ENV{obsAdditionalInstallFiles}")
endif()
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(_lib_suffix 64)
else()
set(_lib_suffix 32)
endif()
install(DIRECTORY "${addfdir}/misc/"
DESTINATION "."
USE_SOURCE_PERMISSIONS)
install(DIRECTORY "${addfdir}/data/"
DESTINATION "${OBS_DATA_DESTINATION}"
USE_SOURCE_PERMISSIONS)
install(DIRECTORY "${addfdir}/libs${_lib_suffix}/"
DESTINATION "${OBS_LIBRARY_DESTINATION}"
USE_SOURCE_PERMISSIONS)
install(DIRECTORY "${addfdir}/exec${_lib_suffix}/"
DESTINATION "${OBS_EXECUTABLE_DESTINATION}"
USE_SOURCE_PERMISSIONS)
endfunction()
macro(install_obs_core target)
install(TARGETS ${target}
LIBRARY DESTINATION "${OBS_LIBRARY_DESTINATION}"
RUNTIME DESTINATION "${OBS_EXECUTABLE_DESTINATION}")
add_custom_command(TARGET ${target} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy
"$<TARGET_FILE:${target}>" "${OBS_OUTPUT_DIR}/$<CONFIGURATION>/$<TARGET_FILE_NAME:${target}>"
VERBATIM)
endmacro()
macro(install_obs_plugin target)
install(TARGETS ${target}
LIBRARY DESTINATION "${OBS_PLUGIN_DESTINATION}"
RUNTIME DESTINATION "${OBS_PLUGIN_DESTINATION}")
add_custom_command(TARGET ${target} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy
"$<TARGET_FILE:${target}>" "${OBS_OUTPUT_DIR}/$<CONFIGURATION>/obs-plugins/$<TARGET_FILE_NAME:${target}>"
VERBATIM)
endmacro()
macro(install_obs_data target datadir datadest)
install(DIRECTORY ${datadir}/
DESTINATION "${OBS_DATA_DESTINATION}/${datadest}"
USE_SOURCE_PERMISSIONS)
add_custom_command(TARGET ${target} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_directory
"${CMAKE_CURRENT_SOURCE_DIR}/${datadir}" "${OBS_OUTPUT_DIR}/$<CONFIGURATION>/data/${datadest}"
VERBATIM)
endmacro()
macro(install_obs_plugin_data target datadir)
install_obs_plugin(${target})
install_obs_data(${target} "${datadir}" "obs-plugins/${target}")
endmacro()
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleIcon</key>
<string>OBS Studio.icns</string>
<key>CFBundleName</key>
<string>OBS Studio</string>
<key>CFBundleGetInfoString</key>
<string>OBS Studio - Open Source Streaming Software</string>
<key>CFBundleExecutable</key>
<string>OBS Studio</string>
<key>CFBundleIdentifier</key>
<string>com.obsproject.obs-studio</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>LSUIElement</key>
<string>1</string></dict>
</plist>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment