Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
74 commits
Select commit Hold shift + click to select a range
60d897e
Adding pull request template
tedwaine Nov 5, 2024
61f0d86
Tweak PR template
tedwaine Nov 5, 2024
b35f160
Adding pull request template
tedwaine Nov 5, 2024
d65d7f5
Tweak PR template
tedwaine Nov 5, 2024
bca1b90
Version 1.0.0 alpha
tedwaine Dec 3, 2024
318592a
Attempt to add OTIO as submodule
tedwaine Dec 3, 2024
adbf8f3
Removing debug output
tedwaine Dec 3, 2024
ef4768f
Fix audio distortion
tedwaine Dec 3, 2024
d5e1cbc
Resolving installation issues
tedwaine Dec 4, 2024
f945b2e
Sync to DNEG internal repo
tedwaine Jan 13, 2025
d57ec7d
Sync to DNEG internal
tedwaine Jan 14, 2025
2d6f32d
Sync to DNEG internal repo. Support to build Windows installer added.
tedwaine Jan 23, 2025
d6b6552
MacOS build comaptibility added. Many improvements and fixes
tedwaine May 1, 2025
5ec02fd
Fix global version, tweak build docs
tedwaine May 1, 2025
e5e9b09
Updating Ubuntu 22.04 build docs and tweak for build compatibility
tedwaine May 7, 2025
5b6e92e
Tweak to Rocky build guide - still WIP
tedwaine May 15, 2025
4d3c5e6
Fix qml import for Win11 build
tedwaine May 7, 2025
b61b385
Sync to DNEG internal repo
tedwaine Jun 2, 2025
18fbb85
Re-sync to DNEG internal head
tedwaine Jul 4, 2025
14710f0
Fix toolbox issue, docs warning
tedwaine Jul 8, 2025
8e1989c
Fix for OCIO default settings
tedwaine Jul 8, 2025
f716123
Fix numbered frame scanning
tedwaine Jul 10, 2025
9efe918
Some useful feature extensions for Python API
tedwaine Jul 23, 2025
1957bd9
More API extensions for viewport and colour management access
tedwaine Jul 24, 2025
0d43808
Full update to xSTUDIO Documentation
tedwaine Aug 4, 2025
47b786c
Build docs switch default to OFF
tedwaine Aug 4, 2025
bed7635
Remove debug output
tedwaine Aug 5, 2025
d05345d
build(git): ignore directories and files created by a build outside o…
pleprince Aug 22, 2025
c28608e
fix(build): resolve dylib rpath issues in macos app bundles
pleprince Aug 22, 2025
aad9af2
fix(timeline): fix zoom behavior on MacOS laptops when using the mous…
pleprince Aug 28, 2025
dc25559
disables ANNO_SYNC_EXTENSIONS as suggested by comment on GH
tedwaine Sep 12, 2025
cf1c0b7
Sync to DNEG internal repo
tedwaine Oct 23, 2025
b091005
Fix Win10 only build issue
tedwaine Oct 28, 2025
86aafc2
Update release notes, sync to DNEG internal
tedwaine Oct 29, 2025
06005db
Fix issue with grading shapes & overriding MediaReference
tedwaine Oct 30, 2025
c27b236
Update Windows build guide to include NSIS
tedwaine Oct 30, 2025
fad9ae3
Trigger metadata re-load when MediaReference on a MediaSouerce is cha…
tedwaine Nov 6, 2025
7e967c0
In Viewport::pointer_select_media() compensate for the device pixel r…
kenmcgaugh Nov 6, 2025
b8efd49
Fixed incorrect rgb-yuv full-range remapping. This was causing a slig…
kenmcgaugh Oct 31, 2025
d40bebe
When encoding video without specifying any colorspace info, ffmpeg de…
kenmcgaugh Oct 31, 2025
730d36f
Feature to allow for custom thumbnail images.
kenmcgaugh Oct 31, 2025
6972572
Modifications to allow data_source plugins to handle custom URI's.
kenmcgaugh Nov 1, 2025
a62b1c8
Update version on README, add missing font file
tedwaine Nov 21, 2025
c681ffb
Remove empty parent menus when menu item is deleted.
tedwaine Nov 26, 2025
c280a00
Implement OIIO reader
Blackhart Oct 24, 2025
933f078
Add OIIO metadata
Blackhart Oct 29, 2025
0997fc3
Change openimageio version in vcpkg.json
Blackhart Dec 12, 2025
5b489ec
Add remove_media_source_atom and associated handler to media_actor.
kenmcgaugh Nov 14, 2025
4f65296
Allow udta metadata tags to be passed through.
kenmcgaugh Nov 14, 2025
ddc7aca
Fixed incorrect keycode for MetaModifier.
kenmcgaugh Nov 14, 2025
6572c5f
Fixed missing parentheses reported by compiler. This now matches the …
kenmcgaugh Nov 14, 2025
b87a145
Exposed additional methods and constructors for MediaReference, Frame…
kenmcgaugh Nov 14, 2025
75a6782
Exposse the AltModifier to python, which was the one modifier missing.
kenmcgaugh Nov 14, 2025
7c16c0f
Change to prevent sources provided by non-file URL schemes to be mark…
kenmcgaugh Nov 14, 2025
0dc0d5f
This MacOS-only fix prevents an "stroull" error message when a .DS_St…
kenmcgaugh Nov 14, 2025
52c970b
Added empty event_atom/name_atom message handler to prevent error mes…
kenmcgaugh Nov 14, 2025
71c7a64
Added missing override keyword to avoid compiler warning.
kenmcgaugh Nov 15, 2025
67ad181
Fixed typo in show_viewer_hotkey text.
kenmcgaugh Nov 15, 2025
ff4531c
Small fixes to avoid benign QML warnings.
kenmcgaugh Nov 15, 2025
63281b9
Modified OCIOEngine::get_ocio_config() to pass the "ocio_config" meta…
kenmcgaugh Nov 15, 2025
379eb1c
Modifications to allow the "working_space" be set via the source colo…
kenmcgaugh Nov 15, 2025
fe8ae1f
This adds hotkeys for changing the current OCIO view. The hotkeys are…
kenmcgaugh Nov 15, 2025
b9a8411
Just a couple of typos corrected.
kenmcgaugh Nov 15, 2025
613bac0
Allow for optionally disabling SSL verification.
kenmcgaugh Nov 14, 2025
306fdc2
Sync with latest DNEG internal repo
tedwaine Dec 17, 2025
f0f2b80
Re-instate OTIO submodule
tedwaine Dec 17, 2025
a7aac75
Fix merge problems
tedwaine Dec 17, 2025
23efffb
Fix Win namespace issue
tedwaine Dec 18, 2025
c195c41
Sync to DNEG internal
tedwaine Dec 23, 2025
1d07b2a
Clang format
tedwaine Dec 23, 2025
b347ca1
Tweak media reader precedence
tedwaine Dec 23, 2025
3b00d86
A ffmpeg constant changed, I believe the older one FF_PROFILE_UNKOWN …
richardssam Jan 25, 2026
10cfc97
fix(docs): Correct broken build guide links in README
pmady Dec 4, 2025
cb64f9e
Make the doc paths relative.
richardssam Jan 23, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
36 changes: 36 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
<!--
Thanks for your contribution! Please read this comment in its entirety. It's quite important.
When a contributor merges the pull request, the title and the description will be used to build the merge commit!

### Pull Request TITLE

It should be in the following format:

[ 12345: Summary of the changes made ] Where 12345 is the corresponding Github Issue

OR

[ Summary of the changes made ] If it's solving something trivial, like fixing a typo.
-->

### Linked issues
<!--
Link the Issue(s) this Pull Request is related to.

Each PR should link to at least one issue, in the form:

Use one line for each Issue. This allows auto-closing the related issue when the fix is merged.

Fixes #12345
Fixes #54345
-->

### Summarize your change.

### Describe the reason for the change.

### Describe what you have tested and on which operating system.

### Add a list of changes, and note any that might need special attention during the review.

### If possible, provide screenshots.
8 changes: 6 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,15 @@
._*
.gitignore
.vscode/
build_*
__*__
build*/
ignore/
python/src/xstudio.egg-info/
*.egg-info/
python/test/xstudio.log
docs/conf.py
python/src/xstudio/version.py
.vs/
.DS_Store
/build/
xstudio_install/
**/qml/*_qml_export.h
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "extern/otio/OpenTimelineIO"]
path = extern/otio/OpenTimelineIO
url = https://github.com/AcademySoftwareFoundation/OpenTimelineIO
1 change: 0 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1 +0,0 @@

225 changes: 151 additions & 74 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,20 +1,12 @@
cmake_minimum_required(VERSION 3.12 FATAL_ERROR)
cmake_minimum_required(VERSION 3.28 FATAL_ERROR)
cmake_policy(VERSION 3.28)

option(USE_VCPKG "Use Vcpkg for package management" OFF)
if(WIN32)
set(USE_VCPKG ON)
endif()

if (USE_VCPKG)
include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/vcpkg.cmake)
endif()

set(XSTUDIO_GLOBAL_VERSION "0.11.2" CACHE STRING "Version string")
set(XSTUDIO_GLOBAL_VERSION "1.1.0" CACHE STRING "Version string")
set(XSTUDIO_GLOBAL_NAME xStudio)

project(${XSTUDIO_GLOBAL_NAME} VERSION ${XSTUDIO_GLOBAL_VERSION} LANGUAGES CXX)
# set(CMAKE_OSX_DEPLOYMENT_TARGET "14.5" CACHE STRING "Minimum OS X deployment version" FORCE)

cmake_policy(VERSION 3.26)
project(${XSTUDIO_GLOBAL_NAME} VERSION ${XSTUDIO_GLOBAL_VERSION} LANGUAGES CXX)

option(BUILD_TESTING "Build tests" OFF)
option(INSTALL_PYTHON_MODULE "Install python module" ON)
Expand All @@ -24,23 +16,24 @@ option(ENABLE_CLANG_TIDY "Enable clang-tidy, ninja clang-tidy." OFF)
option(ENABLE_CLANG_FORMAT "Enable clang format, ninja clangformat." OFF)
option(FORCE_COLORED_OUTPUT "Always produce ANSI-colored output (GNU/Clang only)." TRUE)
option(OPTIMIZE_FOR_NATIVE "Build with -march=native" OFF)
option(BUILD_RESKIN "Build xstudio reskin binary" ON)

option(OTIO_SUBMODULE "Automatically build OpenTimelineIO as a submodule" OFF)
option(USE_VCPKG "Use Vcpkg for package management" OFF)
option(BUILD_PYSIDE_WIDGETS "Build xstudio player as PySide widget" OFF)
option(OPENIMAGEIO_PLUGIN "Include the OpenImageIO PLugin" ON)

if(WIN32)
set(CMAKE_CXX_FLAGS_DEBUG "/Zi /Ob0 /Od /Oy-")
add_compile_options($<$<CXX_COMPILER_ID:MSVC>:/MP>)
# enable UUID System Generator
add_definitions(-DUUID_SYSTEM_GENERATOR=ON)
set(USE_VCPKG ON)
#include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/vcpkg.cmake)
set(CMAKE_CXX_FLAGS_DEBUG "/Zi /Ob0 /Od /Oy-")
add_compile_options($<$<CXX_COMPILER_ID:MSVC>:/MP>)
# enable UUID System Generator
add_definitions(-DUUID_SYSTEM_GENERATOR=ON)
endif()

list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules")

set(STUDIO_PLUGINS "" CACHE STRING "Enable compilation of SITE plugins")


if (("${CMAKE_GENERATOR}" MATCHES "Makefiles" OR ("${CMAKE_GENERATOR}" MATCHES "Ninja" AND NOT WIN32)) AND NOT __CHECKED_CXX_FLAGS)
set(__CHECKED_CXX_FLAGS TRUE CACHE INTERNAL "Whether we checked the CXX flags already")
set(__CHECKED_CXX_FLAGS TRUE CACHE INTERNAL "Whether we checked the CXX flags already")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${COMMON_GCC}" CACHE STRING "" FORCE)
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${COMMON_GCC}" CACHE STRING "" FORCE)
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} ${COMMON_GCC}" CACHE STRING "" FORCE)
Expand All @@ -49,7 +42,12 @@ if (("${CMAKE_GENERATOR}" MATCHES "Makefiles" OR ("${CMAKE_GENERATOR}" MATCHES "
endif()

set(CXXOPTS_BUILD_TESTS OFF CACHE BOOL "Enable or disable cxxopts' tests")
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "GNU")

if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpic -fdiagnostics-color=always")
endif()

if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpic -fmax-errors=5 -fdiagnostics-color=always")
endif()

Expand All @@ -71,9 +69,8 @@ if (NOT ${GCC_MARCH_OVERRIDE} STREQUAL "")
endif()
endif()

if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fpic")
endif()

set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fpic")

set(TEST_RESOURCE "${CMAKE_CURRENT_SOURCE_DIR}/test_resource")
set(ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR})
Expand Down Expand Up @@ -112,8 +109,14 @@ if (USE_SANITIZER STREQUAL "Address")
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -fsanitize=address")
endif()
elseif (USE_SANITIZER STREQUAL "Thread")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=thread")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=thread")
if(MSVC)
target_compile_options(<target> PUBLIC /fsanitize=thread)
else()
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=thread")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=thread")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=thread")
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -fsanitize=thread")
endif()
elseif (USE_SANITIZER STREQUAL "Undefined")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=undefined")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=undefined")
Expand Down Expand Up @@ -169,7 +172,7 @@ if(WIN32)
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)

# When moving to Qt6 or greater, we might be able to use qt_generate_deploy_app_script
#set(deploy_script "${Qt5_DIR}/../../../windeployqt.exe )
#set(deploy_script "${Qt6_DIR}/../../../windeployqt.exe )
endif()

if(MSVC)
Expand All @@ -178,33 +181,46 @@ if(MSVC)

endif()

# Add the necessary libraries from Vcpkg if Vcpkg integration is enabled
if(USE_VCPKG)
if (USE_VCPKG)

# When building with VCPKG, we will use OTIO submodule
set(OTIO_SUBMODULE true)
add_subdirectory("extern/otio")

set(VCPKG_INTEGRATION ON)
# Set Python in VCPKG
set(Python_EXECUTABLE "${VCPKG_DIRECTORY}/../vcpkg_installed/x64-windows/tools/python3/python.exe")

# Install pip and sphinx
find_package(Python COMPONENTS Interpreter Development)

message("Python_RUNTIME_LIBRARY_DIRS ${Python_RUNTIME_LIBRARY_DIRS}")

execute_process(
COMMAND "${CMAKE_COMMAND}" -E env "PATH=${VCPKG_DIRECTORY}/../vcpkg_installed/x64-windows/tools/python3" python.exe -m ensurepip --upgrade
COMMAND "${Python_EXECUTABLE}" -m ensurepip --upgrade
RESULT_VARIABLE ENSUREPIP_RESULT
)

if(ENSUREPIP_RESULT)
message(FATAL_ERROR "Failed to ensurepip.")
else()
execute_process(
COMMAND "${CMAKE_COMMAND}" -E env "PATH=${VCPKG_DIRECTORY}/../vcpkg_installed/x64-windows/tools/python3" python.exe -m pip install setuptools sphinx breathe sphinx-rtd-theme OpenTimelineIO importlib_metadata zipp
COMMAND "${Python_EXECUTABLE}" -m pip install setuptools sphinx breathe sphinx-rtd-theme OpenTimelineIO-Plugins importlib_metadata zipp
RESULT_VARIABLE PIP_RESULT
)
if(PIP_RESULT)
message(FATAL_ERROR "Failed to install Sphinx using pip.")
endif()
endif()
# append vcpkg packages
list(APPEND CMAKE_PREFIX_PATH "${VCPKG_DIRECTORY}/../vcpkg_installed/x64-windows")


else()
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules")
if(${OTIO_SUBMODULE})
add_subdirectory("extern/otio")
endif()
find_package(PkgConfig REQUIRED)
endif()

# Add the necessary libraries from Vcpkg if Vcpkg integration is enabled

find_package(nlohmann_json CONFIG REQUIRED)
include(CTest)

Expand All @@ -226,59 +242,120 @@ add_subdirectory(src)

if(INSTALL_XSTUDIO)


# add extern libs that are build-time dependencies of xstudio
if (UNIX)
add_subdirectory("extern/reproc")
endif()
add_subdirectory("extern/quickfuture")
add_subdirectory("extern/quickpromise")

add_subdirectory(share/preference)
add_subdirectory(share/snippets)
add_subdirectory(share/fonts)
# build quickpromise
add_subdirectory(extern/quickpromise)
add_subdirectory(extern/quickfuture)

install(DIRECTORY include/xstudio
DESTINATION include)

INSTALL(DIRECTORY extern/ DESTINATION extern)

add_subdirectory(share/preference)
add_subdirectory(share/snippets)
add_subdirectory(share/fonts)

if(BUILD_DOCS)
if(NOT INSTALL_PYTHON_MODULE)
add_subdirectory(python)
endif ()
message("BUILDING DOCS")
add_subdirectory(docs)
else()
install(DIRECTORY share/docs/ DESTINATION share/xstudio/docs)
if (APPLE)
install(DIRECTORY share/docs/ DESTINATION ${CMAKE_BINARY_DIR}/xSTUDIO.app/Contents/Resources/docs)
else()
install(DIRECTORY share/docs/ DESTINATION share/xstudio/docs)
endif()
endif ()

include(CMakePackageConfigHelpers)
if (NOT APPLE)

configure_package_config_file(xStudioConfig.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/xStudioConfig.cmake
INSTALL_DESTINATION lib/cmake/${PROJECT_NAME}
)
write_basic_package_version_file("xStudioConfigVersion.cmake"
VERSION ${PROJECT_VERSION}
COMPATIBILITY SameMajorVersion
)
include(CMakePackageConfigHelpers)

install(FILES ${CMAKE_CURRENT_BINARY_DIR}/xStudioConfig.cmake
${CMAKE_CURRENT_BINARY_DIR}/xStudioConfigVersion.cmake
configure_package_config_file(xStudioConfig.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/xStudioConfig.cmake
INSTALL_DESTINATION lib/cmake/${PROJECT_NAME}
)
write_basic_package_version_file("xStudioConfigVersion.cmake"
VERSION ${PROJECT_VERSION}
COMPATIBILITY SameMajorVersion
)

install(FILES ${CMAKE_CURRENT_BINARY_DIR}/xStudioConfig.cmake
${CMAKE_CURRENT_BINARY_DIR}/xStudioConfigVersion.cmake
DESTINATION lib/cmake/${PROJECT_NAME}
)

install(EXPORT xstudio
DESTINATION lib/cmake/${PROJECT_NAME}
)
FILE ${PROJECT_NAME}Targets.cmake
NAMESPACE xstudio::
EXPORT_LINK_INTERFACE_LIBRARIES
)

install(EXPORT xstudio
DESTINATION lib/cmake/${PROJECT_NAME}
FILE ${PROJECT_NAME}Targets.cmake
NAMESPACE xstudio::
EXPORT_LINK_INTERFACE_LIBRARIES
)
endif()

endif ()

if(USE_VCPKG)
if (USE_VCPKG)
# To provide reliable ordering, we need to make this install script happen in a subdirectory.
# Otherwise, Qt deploy will happen before we have the rest of the application deployed.
add_subdirectory("scripts/qt_install")
endif()
endif()

if (WIN32)

include(InstallRequiredSystemLibraries)

set(CPACK_PACKAGE_VERSION "1.1.0")
set(CPACK_PACKAGE_VERSION_MAJOR "1")
set(CPACK_PACKAGE_VERSION_MINOR "1")
set(CPACK_PACKAGE_VERSION_PATCH "0")
set(CPACK_PACKAGE_VENDOR "DNEG / Academy Software Foundation")
set (CPACK_NSIS_MUI_ICON
"${CMAKE_CURRENT_SOURCE_DIR}/ui/icons\\\\xstudio_app.ico")
set (CPACK_PACKAGE_NAME "xSTUDIO")
set (CPACK_NSIS_PACKAGE_NAME "xSTUDIO")
set (CPACK_PACKAGE_ICON
"${CMAKE_CURRENT_SOURCE_DIR}/ui/icons\\\\xstudio_app.ico")
set (CPACK_RESOURCE_FILE_LICENSE
"${CMAKE_CURRENT_SOURCE_DIR}/LICENSE")
set (CPACK_CREATE_DESKTOP_LINKS xstudio)
set (CPACK_NSIS_MENU_LINKS
"share/docs/index.html"
"xSTUDIO Help")

if("${STUDIO_PLUGINS}" STREQUAL "dneg")
# for dneg deployment, we add some CLI args to pick up our customised facility preferences thus:
set(CPACK_NSIS_CREATE_ICONS_EXTRA
"CreateShortCut '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\xSTUDIO.lnk' '$INSTDIR\\\\bin\\\\xstudio.exe' '--pref N:\\\\SITE\\\\data\\\\xStudio\\\\dneg_defaults.json --pref N:\\\\SITE\\\\data\\\\xStudio\\\\windows_extra_config\\\\dneg_windows_defaults.json'"
)
else()
set(CPACK_NSIS_CREATE_ICONS_EXTRA
"CreateShortCut '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\xSTUDIO.lnk' '$INSTDIR\\\\bin\\\\xstudio.exe'"
)
endif()

#set (CPACK_PACKAGE_EXECUTABLES "xstudio" "xSTUDIO" )

set (CPACK_NSIS_EXTRA_INSTALL_COMMANDS "
WriteRegStr HKCR '.xst' '' 'XStudioSession'
WriteRegStr HKCR 'XStudioSession' '' 'xSTUDIO Session File'
WriteRegStr HKCR 'XStudioSession\\\\shell' '' 'open'
WriteRegStr HKCR 'XStudioSession\\\\DefaultIcon' \\\\
'' '$INSTDIR\\\\bin\\\\xstudio.exe,0'
WriteRegStr HKCR 'XStudioSession\\\\shell\\\\open\\\\command' \\\\
'' '$INSTDIR\\\\bin\\\\xstudio.exe \\\"%1\\\"'
WriteRegStr HKCR 'XStudioSession\\\\shell\\\\edit' \\\\
'' 'Edit xSTUDIO Session File'
WriteRegStr HKCR 'XStudioSession\\\\shell\\\\edit\\\\command' \\\\
'' '$INSTDIR\\\\bin\\\\xstudio.exe \\\"%1\\\"'
System::Call \\\\
'Shell32::SHChangeNotify(i 0x8000000, i 0, i 0, i 0)'
")

set (CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS "
DeleteRegKey HKCR '.xst'
DeleteRegKey HKCR 'XStudioSession'
")

include(CPack)
endif()
Loading