123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179 |
- set(OBS_OUTPUT_DIR "${CMAKE_BINARY_DIR}/rundir")
- if(CMAKE_SIZEOF_VOID_P EQUAL 8)
- set(_lib_suffix 64)
- else()
- set(_lib_suffix 32)
- endif()
- if(WIN32 OR APPLE)
- set(_struct_def FALSE)
- else()
- set(_struct_def TRUE)
- endif()
- option(INSTALLER_RUN "Build a multiarch installer, needs to run indenepdently after both archs have compiled" FALSE)
- option(UNIX_STRUCTURE "Build with standard unix filesystem structure" ${_struct_def})
- if(INSTALLER_RUN AND NOT DEFINED ENV{obsInstallerTempDir})
- message(FATAL_ERROR "Environment variable obsInstallerTempDir is needed for multiarch installer generation")
- endif()
- if(NOT UNIX_STRUCTURE)
- set(OBS_EXECUTABLE_DESTINATION "bin/${_lib_suffix}bit")
- set(OBS_EXECUTABLE32_DESTINATION "bin/32bit")
- set(OBS_EXECUTABLE64_DESTINATION "bin/64bit")
- set(OBS_LIBRARY_DESTINATION "bin/${_lib_suffix}bit")
- set(OBS_LIBRARY32_DESTINATION "bin/32bit")
- set(OBS_LIBRARY64_DESTINATION "bin/64bit")
- set(OBS_PLUGIN_DESTINATION "obs-plugins/${_lib_suffix}bit")
- set(OBS_PLUGIN32_DESTINATION "obs-plugins/32bit")
- set(OBS_PLUGIN64_DESTINATION "obs-plugins/64bit")
- set(OBS_DATA_DESTINATION "data")
- add_definitions(-DOBS_DATA_PATH="../../${OBS_DATA_DESTINATION}")
- else()
- set(OBS_EXECUTABLE_DESTINATION "bin")
- set(OBS_EXECUTABLE32_DESTINATION "bin32")
- set(OBS_EXECUTABLE64_DESTINATION "bin64")
- set(OBS_LIBRARY_DESTINATION "lib")
- set(OBS_LIBRARY32_DESTINATION "lib32")
- set(OBS_LIBRARY64_DESTINATION "lib64")
- set(OBS_PLUGIN_DESTINATION "lib/obs-plugins")
- set(OBS_PLUGIN32_DESTINATION "lib32/obs-plugins")
- set(OBS_PLUGIN64_DESTINATION "lib64/obs-plugins")
- set(OBS_DATA_DESTINATION "share/obs")
- add_definitions(-DOBS_DATA_PATH="${OBS_DATA_DESTINATION}")
- add_definitions(-DOBS_INSTALL_PREFIX="${CMAKE_INSTALL_PREFIX}/")
- endif()
- function(obs_generate_multiarch_installer)
- install(DIRECTORY "$ENV{obsInstallerTempDir}/"
- DESTINATION "."
- USE_SOURCE_PERMISSIONS)
- endfunction()
- 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
- PATTERN ".gitignore" EXCLUDE)
- install(DIRECTORY "${addfdir}/data/"
- DESTINATION "${OBS_DATA_DESTINATION}"
- USE_SOURCE_PERMISSIONS
- PATTERN ".gitignore" EXCLUDE)
-
- if(INSTALLER_RUN)
- install(DIRECTORY "${addfdir}/libs32/"
- DESTINATION "${OBS_LIBRARY32_DESTINATION}"
- USE_SOURCE_PERMISSIONS
- PATTERN ".gitignore" EXCLUDE)
- install(DIRECTORY "${addfdir}/exec32/"
- DESTINATION "${OBS_EXECUTABLE32_DESTINATION}"
- USE_SOURCE_PERMISSIONS
- PATTERN ".gitignore" EXCLUDE)
- install(DIRECTORY "${addfdir}/libs64/"
- DESTINATION "${OBS_LIBRARY64_DESTINATION}"
- USE_SOURCE_PERMISSIONS
- PATTERN ".gitignore" EXCLUDE)
- install(DIRECTORY "${addfdir}/exec64/"
- DESTINATION "${OBS_EXECUTABLE64_DESTINATION}"
- USE_SOURCE_PERMISSIONS
- PATTERN ".gitignore" EXCLUDE)
- else()
- install(DIRECTORY "${addfdir}/libs${_lib_suffix}/"
- DESTINATION "${OBS_LIBRARY_DESTINATION}"
- USE_SOURCE_PERMISSIONS
- PATTERN ".gitignore" EXCLUDE)
- install(DIRECTORY "${addfdir}/exec${_lib_suffix}/"
- DESTINATION "${OBS_EXECUTABLE_DESTINATION}"
- USE_SOURCE_PERMISSIONS
- PATTERN ".gitignore" EXCLUDE)
- endif()
- endfunction()
- macro(install_obs_core target)
- if(CMAKE_SIZEOF_VOID_P EQUAL 8)
- set(_lib_suffix 64)
- else()
- set(_lib_suffix 32)
- endif()
- 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>/bin/${_lib_suffix}bit/$<TARGET_FILE_NAME:${target}>"
- VERBATIM)
- if(DEFINED ENV{obsInstallerTempDir})
- get_property(target_type TARGET ${target} PROPERTY TYPE)
- if("${target_type}" STREQUAL "EXECUTABLE")
- set(tmp_target_dir "${OBS_EXECUTABLE_DESTINATION}")
- else()
- set(tmp_target_dir "${OBS_LIBRARY_DESTINATION}")
- endif()
- add_custom_command(TARGET ${target} POST_BUILD
- COMMAND "${CMAKE_COMMAND}" -E copy
- "$<TARGET_FILE:${target}>" "$ENV{obsInstallerTempDir}/${tmp_target_dir}/$<TARGET_FILE_NAME:${target}>"
- VERBATIM)
- endif()
- endmacro()
- macro(install_obs_plugin target)
- if(CMAKE_SIZEOF_VOID_P EQUAL 8)
- set(_lib_suffix 64)
- else()
- set(_lib_suffix 32)
- endif()
- 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/${_lib_suffix}bit/$<TARGET_FILE_NAME:${target}>"
- VERBATIM)
- if(DEFINED ENV{obsInstallerTempDir})
- add_custom_command(TARGET ${target} POST_BUILD
- COMMAND "${CMAKE_COMMAND}" -E copy
- "$<TARGET_FILE:${target}>" "$ENV{obsInstallerTempDir}/${OBS_PLUGIN_DESTINATION}/$<TARGET_FILE_NAME:${target}>"
- VERBATIM)
- endif()
- 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)
- if(CMAKE_SIZEOF_VOID_P EQUAL 8 AND DEFINED ENV{obsInstallerTempDir})
- add_custom_command(TARGET ${target} POST_BUILD
- COMMAND "${CMAKE_COMMAND}" -E copy_directory
- "${CMAKE_CURRENT_SOURCE_DIR}/${datadir}" "$ENV{obsInstallerTempDir}/${OBS_DATA_DESTINATION}/${datadest}"
- VERBATIM)
- endif()
- endmacro()
- macro(install_obs_plugin_data target datadir)
- install_obs_plugin(${target})
- install_obs_data(${target} "${datadir}" "obs-plugins/${target}")
- endmacro()
|