os-windows.cmake 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. if(NOT TARGET OBS::blake2)
  2. add_subdirectory("${CMAKE_SOURCE_DIR}/deps/blake2" "${CMAKE_BINARY_DIR}/deps/blake2")
  3. endif()
  4. if(NOT TARGET OBS::w32-pthreads)
  5. add_subdirectory("${CMAKE_SOURCE_DIR}/deps/w32-pthreads" "${CMAKE_BINARY_DIR}/deps/w32-pthreads")
  6. endif()
  7. find_package(MbedTLS)
  8. find_package(Detours REQUIRED)
  9. find_package(nlohmann_json REQUIRED)
  10. configure_file(cmake/windows/obs.rc.in obs.rc)
  11. target_sources(
  12. obs-studio
  13. PRIVATE
  14. cmake/windows/obs.manifest
  15. obs.rc
  16. platform-windows.cpp
  17. update/crypto-helpers-mbedtls.cpp
  18. update/crypto-helpers.hpp
  19. update/models/branches.hpp
  20. update/models/whatsnew.hpp
  21. update/shared-update.cpp
  22. update/shared-update.hpp
  23. update/update-helpers.cpp
  24. update/update-helpers.hpp
  25. update/update-window.cpp
  26. update/update-window.hpp
  27. update/win-update.cpp
  28. update/win-update.hpp
  29. win-dll-blocklist.c
  30. win-update/updater/manifest.hpp
  31. )
  32. target_sources(obs-studio PRIVATE system-info-windows.cpp)
  33. target_link_libraries(
  34. obs-studio
  35. PRIVATE crypt32 OBS::blake2 OBS::w32-pthreads MbedTLS::MbedTLS nlohmann_json::nlohmann_json Detours::Detours
  36. )
  37. target_compile_definitions(obs-studio PRIVATE PSAPI_VERSION=2)
  38. target_link_options(obs-studio PRIVATE /IGNORE:4099)
  39. add_library(obs-update-helpers INTERFACE)
  40. add_library(OBS::update-helpers ALIAS obs-update-helpers)
  41. target_sources(obs-update-helpers INTERFACE win-update/win-update-helpers.cpp win-update/win-update-helpers.hpp)
  42. target_include_directories(obs-update-helpers INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/win-update")
  43. # Set commit for untagged version comparisons in the Windows updater
  44. if(OBS_VERSION MATCHES ".+g[a-f0-9]+.*")
  45. string(REGEX REPLACE ".+g([a-f0-9]+).*$" "\\1" OBS_COMMIT ${OBS_VERSION})
  46. else()
  47. set(OBS_COMMIT "")
  48. endif()
  49. set_source_files_properties(update/win-update.cpp PROPERTIES COMPILE_DEFINITIONS OBS_COMMIT="${OBS_COMMIT}")
  50. add_subdirectory(win-update/updater)
  51. set_property(TARGET obs-studio APPEND PROPERTY AUTORCC_OPTIONS --format-version 1)
  52. set_property(DIRECTORY ${CMAKE_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT obs-studio)
  53. set_target_properties(
  54. obs-studio
  55. PROPERTIES
  56. WIN32_EXECUTABLE TRUE
  57. VS_DEBUGGER_COMMAND "${CMAKE_BINARY_DIR}/rundir/$<CONFIG>/bin/64bit/$<TARGET_FILE_NAME:obs-studio>"
  58. VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/rundir/$<CONFIG>/bin/64bit"
  59. )