From 2add4076d3a3a36f05b350fb2efeaac04e633caa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89lo=C3=AFse=20Brosseau?= Date: Mon, 22 Dec 2025 11:31:27 -0500 Subject: [PATCH 1/4] Format all C++ files MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Éloïse Brosseau --- src/lib/app/RvCommon/FileTypeTraits.cpp | 2 +- src/lib/app/RvCommon/RvBottomViewToolBar.cpp | 11 ++- src/lib/app/RvCommon/RvCommon/RvFileDialog.h | 2 +- src/lib/app/RvCommon/RvFileDialog.cpp | 91 +++++++++----------- src/lib/app/RvCommon/RvTopViewToolBar.cpp | 5 +- src/lib/ip/IPBaseNodes/SequenceIPNode.cpp | 17 +--- src/lib/ip/IPBaseNodes/SourceGroupIPNode.cpp | 9 +- src/lib/ip/IPCore/IPCore/Session.h | 40 +++++++-- 8 files changed, 88 insertions(+), 89 deletions(-) diff --git a/src/lib/app/RvCommon/FileTypeTraits.cpp b/src/lib/app/RvCommon/FileTypeTraits.cpp index a00335574..cb0464c8c 100644 --- a/src/lib/app/RvCommon/FileTypeTraits.cpp +++ b/src/lib/app/RvCommon/FileTypeTraits.cpp @@ -111,7 +111,7 @@ namespace Rv } #ifndef PLATFORM_WINDOWS - #if defined(QT65ON) +#if defined(QT65ON) // Adding more heuristics to find the right icon for a file based on the // MIME type. The following heuristics should work for Qt5, but in // order to keep the same behavior as before, this code will only run diff --git a/src/lib/app/RvCommon/RvBottomViewToolBar.cpp b/src/lib/app/RvCommon/RvBottomViewToolBar.cpp index 25ae32256..3977a8327 100644 --- a/src/lib/app/RvCommon/RvBottomViewToolBar.cpp +++ b/src/lib/app/RvCommon/RvBottomViewToolBar.cpp @@ -308,7 +308,7 @@ namespace Rv // m_playModeMenu->addAction(" Loop with Black 1.0 Second"); b->setMenu(m_playModeMenu); - + // Install event filter to show tooltips on disabled menu items m_playModeMenu->installEventFilter(this); @@ -696,7 +696,7 @@ namespace Rv // Disable the whole playmode button if all three options are disabled bool anyEnabled = loopEnabled || onceEnabled || pingPongEnabled; m_playModeAction->setEnabled(anyEnabled); - + QString tooltip; if (anyEnabled) { @@ -777,7 +777,7 @@ namespace Rv if (mouseEvent) { QAction* action = m_playModeMenu->actionAt(mouseEvent->pos()); - + if (action && !action->isEnabled() && !action->toolTip().isEmpty()) { QToolTip::showText(mouseEvent->globalPos(), action->toolTip(), m_playModeMenu); @@ -843,9 +843,8 @@ namespace Rv } else { - QString tooltip = m_customDisabledPrefix.isEmpty() - ? mapping.defaultTooltip - : m_customDisabledPrefix + mapping.defaultTooltip; + QString tooltip = + m_customDisabledPrefix.isEmpty() ? mapping.defaultTooltip : m_customDisabledPrefix + mapping.defaultTooltip; mapping.action->setToolTip(tooltip); } } diff --git a/src/lib/app/RvCommon/RvCommon/RvFileDialog.h b/src/lib/app/RvCommon/RvCommon/RvFileDialog.h index ef804d229..af41ec20b 100644 --- a/src/lib/app/RvCommon/RvCommon/RvFileDialog.h +++ b/src/lib/app/RvCommon/RvCommon/RvFileDialog.h @@ -83,7 +83,7 @@ namespace Rv QString existingFileChoice() const { return m_currentFile; } QStringList selectedFiles() const; - bool confirmDeleteDialog(const QStringList &paths); + bool confirmDeleteDialog(const QStringList& paths); void centerOverApp(); public slots: diff --git a/src/lib/app/RvCommon/RvFileDialog.cpp b/src/lib/app/RvCommon/RvFileDialog.cpp index 9d6d7b5f7..ff1a7bcff 100644 --- a/src/lib/app/RvCommon/RvFileDialog.cpp +++ b/src/lib/app/RvCommon/RvFileDialog.cpp @@ -225,7 +225,7 @@ namespace Rv m_rename = m_selectionPopup->addAction("Rename"); m_delete = m_selectionPopup->addAction("Delete"); m_selectionPopup->addSeparator(); - m_reload = m_selectionPopup->addAction("Refresh"); + m_reload = m_selectionPopup->addAction("Refresh"); QIcon backIcon = colorAdjustedIcon(":images/back_32x32.png"); QIcon forwardIcon = colorAdjustedIcon(":images/forwd_32x32.png"); @@ -320,8 +320,7 @@ namespace Rv connect(m_delete, SIGNAL(triggered(bool)), this, SLOT(deleteSelected(bool))); - connect(m_ui.previousButton, SIGNAL(triggered(QAction*)), this, - SLOT(prevButtonTrigger(QAction*))); + connect(m_ui.previousButton, SIGNAL(triggered(QAction*)), this, SLOT(prevButtonTrigger(QAction*))); connect(m_ui.nextButton, SIGNAL(triggered(QAction*)), this, SLOT(nextButtonTrigger(QAction*))); @@ -376,13 +375,9 @@ namespace Rv connect(m_ui.fileTypeCombo, SIGNAL(currentIndexChanged(int)), this, SLOT(fileTypeChanged(int))); - connect(m_columnView, - SIGNAL(customContextMenuRequested(const QPoint&)), this, - SLOT(selectionPopup(const QPoint&))); + connect(m_columnView, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(selectionPopup(const QPoint&))); - connect(m_detailTree, - SIGNAL(customContextMenuRequested(const QPoint&)), this, - SLOT(selectionPopup(const QPoint&))); + connect(m_detailTree, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(selectionPopup(const QPoint&))); QCompleter* completer = new QCompleter(this); #if defined(RV_VFX_CY2023) @@ -653,14 +648,13 @@ namespace Rv if (m_currentDir.isEmpty() || !dir.exists()) { - QMessageBox::critical(this, "Create New Folder Error", - QString("Current Directory does not exist: %1").arg(m_currentDir)); + QMessageBox::critical(this, "Create New Folder Error", QString("Current Directory does not exist: %1").arg(m_currentDir)); return; } - QString folderName = QInputDialog::getText(this, "Create New Folder", - "Folder name:", QLineEdit::Normal, QString("untitled folder"), &ok); + QString folderName = + QInputDialog::getText(this, "Create New Folder", "Folder name:", QLineEdit::Normal, QString("untitled folder"), &ok); if (ok && !folderName.isEmpty()) { @@ -670,8 +664,9 @@ namespace Rv } else { - QMessageBox::critical(this, "Create New Folder Error", "Failed to create the folder.\n" - "It may already exist or the name is invalid."); + QMessageBox::critical(this, "Create New Folder Error", + "Failed to create the folder.\n" + "It may already exist or the name is invalid."); } } } @@ -681,14 +676,16 @@ namespace Rv QStringList files = selectedFiles(); if (files.size() == 0) { - QMessageBox::critical(this, "Rename Error", "No folder or file selected.\n" - "Please select only one file or folder."); + QMessageBox::critical(this, "Rename Error", + "No folder or file selected.\n" + "Please select only one file or folder."); return; } else if (files.size() > 1) { - QMessageBox::critical(this, "Rename Error", "Too many folders and files selected.\n" - "Please select only one file or folder."); + QMessageBox::critical(this, "Rename Error", + "Too many folders and files selected.\n" + "Please select only one file or folder."); return; } @@ -697,14 +694,12 @@ namespace Rv if (!info.exists()) { - QMessageBox::critical(this, "Rename Error", - QString("Unable to rename: %1").arg(info.fileName())); + QMessageBox::critical(this, "Rename Error", QString("Unable to rename: %1").arg(info.fileName())); return; } bool ok; - QString newName = QInputDialog::getText(this, "Rename", - "New name:", QLineEdit::Normal, info.fileName(), &ok); + QString newName = QInputDialog::getText(this, "Rename", "New name:", QLineEdit::Normal, info.fileName(), &ok); if (!ok || newName.isEmpty() || newName == info.fileName()) return; @@ -721,36 +716,36 @@ namespace Rv else { QMessageBox::critical(this, "Error", - QString("Failed to rename the %1.\nIt may already exist or you may not have permission.") - .arg(info.isDir() ? "folder" : "file")); + QString("Failed to rename the %1.\nIt may already exist or you may not have permission.") + .arg(info.isDir() ? "folder" : "file")); } } - bool RvFileDialog::confirmDeleteDialog(const QStringList &paths) + bool RvFileDialog::confirmDeleteDialog(const QStringList& paths) { QDialog dialog(this); dialog.setWindowTitle("Confirm Deletion"); - QVBoxLayout *layout = new QVBoxLayout(&dialog); + QVBoxLayout* layout = new QVBoxLayout(&dialog); - QHBoxLayout *messageLayout = new QHBoxLayout; - QLabel *iconLabel = new QLabel; + QHBoxLayout* messageLayout = new QHBoxLayout; + QLabel* iconLabel = new QLabel; QIcon icon = QApplication::style()->standardIcon(QStyle::SP_MessageBoxQuestion); iconLabel->setPixmap(icon.pixmap(48, 48)); messageLayout->addWidget(iconLabel, 0, Qt::AlignTop); - QLabel *label = new QLabel("Are you sure you want to delete the following paths?"); + QLabel* label = new QLabel("Are you sure you want to delete the following paths?"); messageLayout->addWidget(label, 1); layout->addLayout(messageLayout); - QListWidget *listWidget = new QListWidget; + QListWidget* listWidget = new QListWidget; listWidget->addItems(paths); listWidget->setMinimumWidth(500); listWidget->setSelectionMode(QAbstractItemView::NoSelection); layout->addWidget(listWidget); - QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Yes | QDialogButtonBox::No); + QDialogButtonBox* buttonBox = new QDialogButtonBox(QDialogButtonBox::Yes | QDialogButtonBox::No); layout->addWidget(buttonBox); QObject::connect(buttonBox, &QDialogButtonBox::accepted, &dialog, &QDialog::accept); @@ -764,30 +759,29 @@ namespace Rv QStringList paths = selectedFiles(); if (paths.size() == 0) { - QMessageBox::critical( - this, "Delete Error", "No items selected.\n" - "You must have one or more files selected"); + QMessageBox::critical(this, "Delete Error", + "No items selected.\n" + "You must have one or more files selected"); return; } // check all paths exists and aren't image sequences QString currentDir = m_currentDir; - for (const QString &path : paths) + for (const QString& path : paths) { DB("deleteSelected: " << path.toUtf8().data()); QFileInfo info(path); if (!info.exists() || !(info.isFile() || info.isDir())) { - QMessageBox::critical( - this, "Delete Error", QString("Unable to delete: %1").arg(info.fileName())); + QMessageBox::critical(this, "Delete Error", QString("Unable to delete: %1").arg(info.fileName())); return; } if (path == currentDir) { QDir dir(path); - if(dir.cdUp()) + if (dir.cdUp()) currentDir = dir.absolutePath(); } } @@ -796,17 +790,15 @@ namespace Rv return; // Sort paths in depth first order - std::sort(paths.begin(), paths.end(), [](const QString& a, const QString& b) { - return a.count(QDir::separator()) > b.count(QDir::separator()); - }); + std::sort(paths.begin(), paths.end(), + [](const QString& a, const QString& b) { return a.count(QDir::separator()) > b.count(QDir::separator()); }); - for (const QString &path : paths) + for (const QString& path : paths) { QFileInfo info(path); if (!info.exists()) { - QMessageBox::critical( - this, "Delete Error", QString("Path does not exist: %1").arg(path)); + QMessageBox::critical(this, "Delete Error", QString("Path does not exist: %1").arg(path)); return; } @@ -814,8 +806,7 @@ namespace Rv { if (!QFile::remove(path)) { - QMessageBox::critical( - this, "Delete Error", QString("Failed to delete file: %1").arg(path)); + QMessageBox::critical(this, "Delete Error", QString("Failed to delete file: %1").arg(path)); return; } } @@ -824,15 +815,13 @@ namespace Rv QDir dir(path); if (!dir.removeRecursively()) { - QMessageBox::critical( - this, "Delete Error", QString("Failed to delete directory: %1").arg(path)); + QMessageBox::critical(this, "Delete Error", QString("Failed to delete directory: %1").arg(path)); return; } } else { - QMessageBox::critical( - this, "Delete Error", QString("Unknown path type: %1").arg(path)); + QMessageBox::critical(this, "Delete Error", QString("Unknown path type: %1").arg(path)); return; } } diff --git a/src/lib/app/RvCommon/RvTopViewToolBar.cpp b/src/lib/app/RvCommon/RvTopViewToolBar.cpp index 4ccd935de..8909a730a 100644 --- a/src/lib/app/RvCommon/RvTopViewToolBar.cpp +++ b/src/lib/app/RvCommon/RvTopViewToolBar.cpp @@ -1404,9 +1404,8 @@ namespace Rv } else { - QString tooltip = m_customDisabledPrefix.isEmpty() - ? mapping.defaultTooltip - : m_customDisabledPrefix + mapping.defaultTooltip; + QString tooltip = + m_customDisabledPrefix.isEmpty() ? mapping.defaultTooltip : m_customDisabledPrefix + mapping.defaultTooltip; mapping.action->setToolTip(tooltip); } } diff --git a/src/lib/ip/IPBaseNodes/SequenceIPNode.cpp b/src/lib/ip/IPBaseNodes/SequenceIPNode.cpp index e1aaf5e7b..f8377a6ba 100644 --- a/src/lib/ip/IPBaseNodes/SequenceIPNode.cpp +++ b/src/lib/ip/IPBaseNodes/SequenceIPNode.cpp @@ -269,23 +269,15 @@ namespace IPCore { const IPNodes& ins = inputs(); - if (!ins.size() - || m_edlSource->size() < 1 - || m_edlSourceIn->size() < 1 - || m_edlSourceOut->size() < 1 - || m_edlGlobalIn->size() < 1) + if (!ins.size() || m_edlSource->size() < 1 || m_edlSourceIn->size() < 1 || m_edlSourceOut->size() < 1 || m_edlGlobalIn->size() < 1) { return EvalPoint(-1, 0, -1); } - const int index = - (forceIndex == -1) ? indexAtFrame(frame) : forceIndex; + const int index = (forceIndex == -1) ? indexAtFrame(frame) : forceIndex; - if (index >= (m_edlSource->size() - 1) - || index >= (m_edlSourceIn->size() - 1) - || index >= (m_edlSourceOut->size() - 1) - || index >= (m_edlGlobalIn->size() - 1) - || index < 0 ) + if (index >= (m_edlSource->size() - 1) || index >= (m_edlSourceIn->size() - 1) || index >= (m_edlSourceOut->size() - 1) + || index >= (m_edlGlobalIn->size() - 1) || index < 0) { return EvalPoint(-1, 0, -1); } @@ -810,7 +802,6 @@ namespace IPCore const float vw = interactive ? context.viewWidth : float(m_structInfo.width); const float vh = interactive ? context.viewHeight : float(m_structInfo.height); - if (ins.empty() || interactive) { return ImageStructureInfo(vw, vh); diff --git a/src/lib/ip/IPBaseNodes/SourceGroupIPNode.cpp b/src/lib/ip/IPBaseNodes/SourceGroupIPNode.cpp index 20ad32743..4d63561a6 100644 --- a/src/lib/ip/IPBaseNodes/SourceGroupIPNode.cpp +++ b/src/lib/ip/IPBaseNodes/SourceGroupIPNode.cpp @@ -110,12 +110,9 @@ namespace IPCore static regex seqRE("(^.*)\\.-?[0-9]*-?-?[0-9]*[@#%]*[0-9]*d?\\.[a-zA-Z0-9]+$"); static regex extRE("(^.*)\\.[a-zA-Z0-9]+$"); - string uiname = - (m_sourceNode && m_sourceNode->numMedia() > 0) - ? boost::filesystem::path(m_sourceNode->mediaName(index)) - .filename() - .string() - : ""; + string uiname = (m_sourceNode && m_sourceNode->numMedia() > 0) + ? boost::filesystem::path(m_sourceNode->mediaName(index)).filename().string() + : ""; smatch movMatch; if (regex_search(uiname, movMatch, movRE)) diff --git a/src/lib/ip/IPCore/IPCore/Session.h b/src/lib/ip/IPCore/IPCore/Session.h index bd8509702..7395e874c 100644 --- a/src/lib/ip/IPCore/IPCore/Session.h +++ b/src/lib/ip/IPCore/IPCore/Session.h @@ -82,14 +82,38 @@ namespace IPCore // Explicitly specify template parameters for MSVC compatibility. // CTAD (Class Template Argument Deduction) works on GCC/Clang but // fails on Windows MSVC, so we specify the number of categories explicitly. - return std::array{ - annotateCategory, annotateAirbrushCategory, annotateBurnCategory, annotateCloneCategory, annotateDodgeCategory, - annotateHarderaseCategory, annotatePenCategory, annotateSampleCategory, annotateSelectCategory, annotateSmudgeCategory, - annotateSofteraseCategory, annotateTextCategory, backwardplayCategory, clearCategory, exportCategory, - flowptCategory, helpCategory, infoCategory, markCategory, mediaCategory, - playcontrolCategory, playmodeLoopCategory, playmodeOnceCategory, playmodePingPongCategory, presentationCategory, - sessionmanagerCategory, sourceCategory, systemCategory, screeningroomCategory, unclassifiedCategory, - viewmodeCategory, wipesCategory}; + return std::array{annotateCategory, + annotateAirbrushCategory, + annotateBurnCategory, + annotateCloneCategory, + annotateDodgeCategory, + annotateHarderaseCategory, + annotatePenCategory, + annotateSampleCategory, + annotateSelectCategory, + annotateSmudgeCategory, + annotateSofteraseCategory, + annotateTextCategory, + backwardplayCategory, + clearCategory, + exportCategory, + flowptCategory, + helpCategory, + infoCategory, + markCategory, + mediaCategory, + playcontrolCategory, + playmodeLoopCategory, + playmodeOnceCategory, + playmodePingPongCategory, + presentationCategory, + sessionmanagerCategory, + sourceCategory, + systemCategory, + screeningroomCategory, + unclassifiedCategory, + viewmodeCategory, + wipesCategory}; } } // namespace EventCategories From 7e369b5d4754dcb6c5a9ba1187568ab701963756 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89lo=C3=AFse=20Brosseau?= Date: Mon, 22 Dec 2025 11:28:02 -0500 Subject: [PATCH 2/4] Format all CMake files MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Éloïse Brosseau --- cmake/defaults/CY2023.cmake | 202 +++++---- cmake/defaults/CY2024.cmake | 174 +++++--- cmake/defaults/CY2025.cmake | 174 +++++--- cmake/defaults/CY2026.cmake | 171 +++++--- cmake/defaults/CYCOMMON.cmake | 394 +++++++++++------- cmake/defaults/cxx_clang_defaults.cmake | 12 +- cmake/defaults/cxx_defaults.cmake | 11 +- cmake/dependencies/CMakeLists.txt | 4 +- cmake/dependencies/boost.cmake | 13 +- cmake/dependencies/dav1d.cmake | 10 +- cmake/dependencies/expat.cmake | 20 +- cmake/dependencies/imath.cmake | 4 +- .../imgui/CMakeLists_PyImGUI.cmake | 13 +- .../imgui/CMakeLists_PyImplot.cmake | 13 +- cmake/dependencies/jpegturbo.cmake | 3 +- cmake/dependencies/ocio.cmake | 67 +-- cmake/dependencies/oiio.cmake | 11 +- cmake/dependencies/openexr.cmake | 24 +- cmake/dependencies/openjpeg.cmake | 6 +- cmake/dependencies/openjph.cmake | 24 +- cmake/dependencies/openssl.cmake | 20 +- cmake/dependencies/pcre2.cmake | 307 +++++++------- cmake/dependencies/pyimgui.cmake | 40 +- cmake/dependencies/pyimplot.cmake | 36 +- cmake/dependencies/python3.cmake | 69 +-- cmake/dependencies/qt5.cmake | 6 +- cmake/dependencies/qt6.cmake | 141 ++++--- cmake/dependencies/raw.cmake | 15 +- cmake/globals/rv_globals.cmake | 8 +- cmake/install/install.cmake | 6 +- cmake/install/pre_install_darwin.cmake | 16 +- cmake/install/pre_install_linux.cmake | 34 +- cmake/install/pre_install_windows.cmake | 8 +- cmake/macros/rv_create_std_deps_vars.cmake | 56 ++- cmake/macros/rv_vfx.cmake | 60 +-- packages/rv/CMakeLists.txt | 2 +- src/bin/apps/rvprof/CMakeLists.txt | 8 +- src/bin/imgtools/CMakeLists.txt | 4 +- src/bin/nsapps/rvlinklauncher/CMakeLists.txt | 8 +- src/lib/CMakeLists.txt | 2 +- src/lib/app/PyMediaLibrary/CMakeLists.txt | 21 +- src/lib/app/RvCommon/CMakeLists.txt | 5 +- src/lib/graphics/TwkGLF/CMakeLists.txt | 8 +- src/lib/image/IOhtj2k/CMakeLists.txt | 8 +- src/lib/image/io_htj2k/CMakeLists.txt | 3 +- src/lib/mu/CMakeLists.txt | 4 +- src/lib/python/CMakeLists.txt | 6 +- src/lib/python/TwkPython/CMakeLists.txt | 1 - .../media_library_demo/CMakeLists.txt | 2 +- .../session_manager/CMakeLists.txt | 18 +- 50 files changed, 1362 insertions(+), 910 deletions(-) diff --git a/cmake/defaults/CY2023.cmake b/cmake/defaults/CY2023.cmake index 131c7986f..42d7fd799 100644 --- a/cmake/defaults/CY2023.cmake +++ b/cmake/defaults/CY2023.cmake @@ -1,86 +1,140 @@ -# CY2023 VFX Reference Platform versions of dependencies -# see https://vfxplatform.com/ +# CY2023 VFX Reference Platform versions of dependencies see https://vfxplatform.com/ IF(RV_VFX_PLATFORM STREQUAL "CY2023") - # Year - SET(RV_VFX_CY_YEAR "2023") - SET(RV_VFX_CY2023 ON ) - ADD_COMPILE_DEFINITIONS(RV_VFX_CY2023) + # Year + SET(RV_VFX_CY_YEAR + "2023" + ) + SET(RV_VFX_CY2023 + ON + ) + ADD_COMPILE_DEFINITIONS(RV_VFX_CY2023) - # Boost - SET(RV_DEPS_BOOST_DOWNLOAD_HASH "077f074743ea7b0cb49c6ed43953ae95") - SET(RV_DEPS_BOOST_MAJOR_MINOR_VERSION "1_80") - SET(RV_DEPS_BOOST_VERSION "1.80.0") + # Boost + SET(RV_DEPS_BOOST_DOWNLOAD_HASH + "077f074743ea7b0cb49c6ed43953ae95" + ) + SET(RV_DEPS_BOOST_MAJOR_MINOR_VERSION + "1_80" + ) + SET(RV_DEPS_BOOST_VERSION + "1.80.0" + ) - # Special case for XCode 15 on macOS - if(RV_TARGET_DARWIN) - execute_process( - COMMAND xcrun clang --version - OUTPUT_VARIABLE CLANG_FULL_VERSION_STRING - ) - string( - REGEX - REPLACE ".*clang version ([0-9]+\\.[0-9]+).*" "\\1" CLANG_VERSION_STRING ${CLANG_FULL_VERSION_STRING} - ) - if(CLANG_VERSION_STRING VERSION_GREATER_EQUAL 15.0) - message(STATUS "Clang version ${CLANG_VERSION_STRING} is not compatible with Boost 1.80, using Boost 1.81 instead. " - "Install XCode 14.3.1 if you absolutely want to use Boost version 1.80 as per VFX reference platform CY2023" - ) - SET(RV_DEPS_BOOST_VERSION "1.81.0") - SET(RV_DEPS_BOOST_MAJOR_MINOR_VERSION "1_81") - SET(RV_DEPS_BOOST_DOWNLOAD_HASH "4bf02e84afb56dfdccd1e6aec9911f4b") - endif() - endif() + # Special case for XCode 15 on macOS + IF(RV_TARGET_DARWIN) + EXECUTE_PROCESS( + COMMAND xcrun clang --version + OUTPUT_VARIABLE CLANG_FULL_VERSION_STRING + ) + STRING( + REGEX + REPLACE ".*clang version ([0-9]+\\.[0-9]+).*" "\\1" CLANG_VERSION_STRING ${CLANG_FULL_VERSION_STRING} + ) + IF(CLANG_VERSION_STRING VERSION_GREATER_EQUAL 15.0) + MESSAGE(STATUS "Clang version ${CLANG_VERSION_STRING} is not compatible with Boost 1.80, using Boost 1.81 instead. " + "Install XCode 14.3.1 if you absolutely want to use Boost version 1.80 as per VFX reference platform CY2023" + ) + SET(RV_DEPS_BOOST_VERSION + "1.81.0" + ) + SET(RV_DEPS_BOOST_MAJOR_MINOR_VERSION + "1_81" + ) + SET(RV_DEPS_BOOST_DOWNLOAD_HASH + "4bf02e84afb56dfdccd1e6aec9911f4b" + ) + ENDIF() + ENDIF() - # Imath - # Can find the build version in OpenRV/_build/RV_DEPS_IMATH/install/lib/ - SET(RV_DEPS_IMATH_VERSION "3.1.12") - SET(RV_DEPS_IMATH_DOWNLOAD_HASH "d4059140972da68a2b5a1287ebe5a653") - SET(RV_DEPS_IMATH_LIB_VER "29.11.0") - SET(RV_DEPS_IMATH_LIB_MAJOR "3_1") + # Imath Can find the build version in OpenRV/_build/RV_DEPS_IMATH/install/lib/ + SET(RV_DEPS_IMATH_VERSION + "3.1.12" + ) + SET(RV_DEPS_IMATH_DOWNLOAD_HASH + "d4059140972da68a2b5a1287ebe5a653" + ) + SET(RV_DEPS_IMATH_LIB_VER + "29.11.0" + ) + SET(RV_DEPS_IMATH_LIB_MAJOR + "3_1" + ) - # NumPy - # NumPY for CY2023 is 1.23.x series but Pyside2 requires < 1.23 - # So we comment this out and make_pyside.py hardcoded to use NumPy < 1.23 - #SET(ENV{RV_DEPS_NUMPY_VERSION} "1.23.5") + # NumPy NumPY for CY2023 is 1.23.x series but Pyside2 requires < 1.23 So we comment this out and make_pyside.py hardcoded to use NumPy < 1.23 + # SET(ENV{RV_DEPS_NUMPY_VERSION} "1.23.5") - # OCIO - # https://github.com/AcademySoftwareFoundation/OpenColorIO - SET(RV_DEPS_OCIO_VERSION "2.2.1") - SET(RV_DEPS_OCIO_VERSION_SHORT "2_2") - SET(RV_DEPS_OCIO_DOWNLOAD_HASH "d337d7cc890c6a04ad725556c2b7fb4c") + # OCIO https://github.com/AcademySoftwareFoundation/OpenColorIO + SET(RV_DEPS_OCIO_VERSION + "2.2.1" + ) + SET(RV_DEPS_OCIO_VERSION_SHORT + "2_2" + ) + SET(RV_DEPS_OCIO_DOWNLOAD_HASH + "d337d7cc890c6a04ad725556c2b7fb4c" + ) - # OpenEXR - # https://github.com/AcademySoftwareFoundation/openexr/releases - SET(RV_DEPS_OPENEXR_VERSION "3.1.13") - SET(RV_DEPS_OPENEXR_DOWNLOAD_HASH "bbb385d52695502ea47303a2810a8bc1") - SET(RV_DEPS_OPENEXR_LIBNAME_SUFFIX "3_1") - SET(RV_DEPS_OPENEXR_LIB_VERSION_SUFFIX "30.13.1") - SET(RV_DEPS_OPENEXR_PATCH_NAME "openexr_${RV_DEPS_OPENEXR_VERSION}_invalid_to_black") + # OpenEXR https://github.com/AcademySoftwareFoundation/openexr/releases + SET(RV_DEPS_OPENEXR_VERSION + "3.1.13" + ) + SET(RV_DEPS_OPENEXR_DOWNLOAD_HASH + "bbb385d52695502ea47303a2810a8bc1" + ) + SET(RV_DEPS_OPENEXR_LIBNAME_SUFFIX + "3_1" + ) + SET(RV_DEPS_OPENEXR_LIB_VERSION_SUFFIX + "30.13.1" + ) + SET(RV_DEPS_OPENEXR_PATCH_NAME + "openexr_${RV_DEPS_OPENEXR_VERSION}_invalid_to_black" + ) - # OpenSSL - # https://github.com/openssl/openssl - SET(RV_DEPS_OPENSSL_HASH "72f7ba7395f0f0652783ba1089aa0dcc") - SET(RV_DEPS_OPENSSL_VERSION "1.1.1u") - SET(RV_DEPS_OPENSSL_VERSION_DOT ".1.1") - SET(RV_DEPS_OPENSSL_VERSION_UNDERSCORE "1_1") + # OpenSSL https://github.com/openssl/openssl + SET(RV_DEPS_OPENSSL_HASH + "72f7ba7395f0f0652783ba1089aa0dcc" + ) + SET(RV_DEPS_OPENSSL_VERSION + "1.1.1u" + ) + SET(RV_DEPS_OPENSSL_VERSION_DOT + ".1.1" + ) + SET(RV_DEPS_OPENSSL_VERSION_UNDERSCORE + "1_1" + ) - # PySide - SET(RV_DEPS_PYSIDE_TARGET "RV_DEPS_PYSIDE2") - SET(RV_DEPS_PYSIDE_VERSION "5.15.10") - SET(RV_DEPS_PYSIDE_DOWNLOAD_HASH "87841aaced763b6b52e9b549e31a493f") - # SET(RV_DEPS_PYSIDE_VERSION "5.15.18") - # SET(RV_DEPS_PYSIDE_DOWNLOAD_HASH "52aa32613f7a69ff46e38ed8a427eb38") - SET(RV_DEPS_PYSIDE_ARCHIVE_URL "https://mirrors.ocf.berkeley.edu/qt/official_releases/QtForPython/pyside2/PySide2-${RV_DEPS_PYSIDE_VERSION}-src/pyside-setup-opensource-src-${RV_DEPS_PYSIDE_VERSION}.zip") + # PySide + SET(RV_DEPS_PYSIDE_TARGET + "RV_DEPS_PYSIDE2" + ) + SET(RV_DEPS_PYSIDE_VERSION + "5.15.10" + ) + SET(RV_DEPS_PYSIDE_DOWNLOAD_HASH + "87841aaced763b6b52e9b549e31a493f" + ) + # SET(RV_DEPS_PYSIDE_VERSION "5.15.18") SET(RV_DEPS_PYSIDE_DOWNLOAD_HASH "52aa32613f7a69ff46e38ed8a427eb38") + SET(RV_DEPS_PYSIDE_ARCHIVE_URL + "https://mirrors.ocf.berkeley.edu/qt/official_releases/QtForPython/pyside2/PySide2-${RV_DEPS_PYSIDE_VERSION}-src/pyside-setup-opensource-src-${RV_DEPS_PYSIDE_VERSION}.zip" + ) - # Python - # https://www.python.org/downloads/source/ - SET(RV_DEPS_PYTHON_VERSION "3.10.13") - SET(RV_DEPS_PYTHON_DOWNLOAD_HASH "21b32503f31386b37f0c42172dfe5637") - # SET(RV_DEPS_PYTHON_VERSION "3.10.18") - # SET(RV_DEPS_PYTHON_DOWNLOAD_HASH "e381359208e2bd0485169656b50ff24c") + # Python https://www.python.org/downloads/source/ + SET(RV_DEPS_PYTHON_VERSION + "3.10.13" + ) + SET(RV_DEPS_PYTHON_DOWNLOAD_HASH + "21b32503f31386b37f0c42172dfe5637" + ) + # SET(RV_DEPS_PYTHON_VERSION "3.10.18") SET(RV_DEPS_PYTHON_DOWNLOAD_HASH "e381359208e2bd0485169656b50ff24c") - # Qt - SET(RV_DEPS_QT_VERSION "5.15.10") - SET(RV_DEPS_QT_MAJOR "5") -ENDIF() \ No newline at end of file + # Qt + SET(RV_DEPS_QT_VERSION + "5.15.10" + ) + SET(RV_DEPS_QT_MAJOR + "5" + ) +ENDIF() diff --git a/cmake/defaults/CY2024.cmake b/cmake/defaults/CY2024.cmake index 2c8774001..0470796ef 100644 --- a/cmake/defaults/CY2024.cmake +++ b/cmake/defaults/CY2024.cmake @@ -1,63 +1,115 @@ -# CY2024 VFX Reference Platform versions of dependencies -# see https://vfxplatform.com/ +# CY2024 VFX Reference Platform versions of dependencies see https://vfxplatform.com/ IF(RV_VFX_PLATFORM STREQUAL "CY2024") - # Year - SET(RV_VFX_CY_YEAR "2024") - SET(RV_VFX_CY2024 ON ) - ADD_COMPILE_DEFINITIONS(QT65ON) - - # Boost - SET(RV_DEPS_BOOST_VERSION "1.82.0") - SET(RV_DEPS_BOOST_MAJOR_MINOR_VERSION "1_82") - SET(RV_DEPS_BOOST_DOWNLOAD_HASH "f7050f554a65f6a42ece221eaeec1660") - - # Imath - # Can find the build version in OpenRV/_build/RV_DEPS_IMATH/install/lib/ - SET(RV_DEPS_IMATH_VERSION "3.1.12") - SET(RV_DEPS_IMATH_DOWNLOAD_HASH "d4059140972da68a2b5a1287ebe5a653") - SET(RV_DEPS_IMATH_LIB_VER "29.11.0") - SET(RV_DEPS_IMATH_LIB_MAJOR "3_1") - - # NumPy - # https://numpy.org/doc/stable/release.html - SET(ENV{RV_DEPS_NUMPY_VERSION} "1.24.4") - - # OCIO - # https://github.com/AcademySoftwareFoundation/OpenColorIO - SET(RV_DEPS_OCIO_VERSION "2.3.2") - SET(RV_DEPS_OCIO_VERSION_SHORT "2_3") - SET(RV_DEPS_OCIO_DOWNLOAD_HASH "9eb7834a7cc66b14f0251b7673be0d81") - - # OpenEXR - # https://github.com/AcademySoftwareFoundation/openexr/releases - SET(RV_DEPS_OPENEXR_VERSION "3.2.5") - SET(RV_DEPS_OPENEXR_DOWNLOAD_HASH "838dfec3bb2a60fee02cc4f0378b6a5c") - SET(RV_DEPS_OPENEXR_LIBNAME_SUFFIX "3_2") - SET(RV_DEPS_OPENEXR_LIB_VERSION_SUFFIX "31.${RV_DEPS_OPENEXR_VERSION}") - SET(RV_DEPS_OPENEXR_PATCH_NAME "openexr_${RV_DEPS_OPENEXR_VERSION}_invalid_to_black") - - # OpenSSL - # https://github.com/openssl/openssl - SET(RV_DEPS_OPENSSL_VERSION "3.4.0") - SET(RV_DEPS_OPENSSL_HASH "34733f7be2d60ecd8bd9ddb796e182af") - SET(RV_DEPS_OPENSSL_VERSION_DOT ".3") - SET(RV_DEPS_OPENSSL_VERSION_UNDERSCORE "3") - - # PySide - SET(RV_DEPS_PYSIDE_VERSION "6.5.3") - SET(RV_DEPS_PYSIDE_DOWNLOAD_HASH "515d3249c6e743219ff0d7dd25b8c8d8") - SET(RV_DEPS_PYSIDE_TARGET "RV_DEPS_PYSIDE6") - SET(RV_DEPS_PYSIDE_ARCHIVE_URL "https://mirrors.ocf.berkeley.edu/qt/official_releases/QtForPython/pyside6/PySide6-${RV_DEPS_PYSIDE_VERSION}-src/pyside-setup-everywhere-src-${RV_DEPS_PYSIDE_VERSION}.zip") - - # Python - # https://www.python.org/downloads/source/ - SET(RV_DEPS_PYTHON_VERSION "3.11.9") - SET(RV_DEPS_PYTHON_DOWNLOAD_HASH "392eccd4386936ffcc46ed08057db3e7") - # SET(RV_DEPS_PYTHON_VERSION "3.11.14") - # SET(RV_DEPS_PYTHON_DOWNLOAD_HASH "5f43ab9d5a74b9ac0dd2e20f58740f9e") - - # Qt - SET(RV_DEPS_QT_VERSION "6.5.3") - SET(RV_DEPS_QT_MAJOR "6") -ENDIF() \ No newline at end of file + # Year + SET(RV_VFX_CY_YEAR + "2024" + ) + SET(RV_VFX_CY2024 + ON + ) + ADD_COMPILE_DEFINITIONS(QT65ON) + + # Boost + SET(RV_DEPS_BOOST_VERSION + "1.82.0" + ) + SET(RV_DEPS_BOOST_MAJOR_MINOR_VERSION + "1_82" + ) + SET(RV_DEPS_BOOST_DOWNLOAD_HASH + "f7050f554a65f6a42ece221eaeec1660" + ) + + # Imath Can find the build version in OpenRV/_build/RV_DEPS_IMATH/install/lib/ + SET(RV_DEPS_IMATH_VERSION + "3.1.12" + ) + SET(RV_DEPS_IMATH_DOWNLOAD_HASH + "d4059140972da68a2b5a1287ebe5a653" + ) + SET(RV_DEPS_IMATH_LIB_VER + "29.11.0" + ) + SET(RV_DEPS_IMATH_LIB_MAJOR + "3_1" + ) + + # NumPy https://numpy.org/doc/stable/release.html + SET(ENV{RV_DEPS_NUMPY_VERSION} + "1.24.4" + ) + + # OCIO https://github.com/AcademySoftwareFoundation/OpenColorIO + SET(RV_DEPS_OCIO_VERSION + "2.3.2" + ) + SET(RV_DEPS_OCIO_VERSION_SHORT + "2_3" + ) + SET(RV_DEPS_OCIO_DOWNLOAD_HASH + "9eb7834a7cc66b14f0251b7673be0d81" + ) + + # OpenEXR https://github.com/AcademySoftwareFoundation/openexr/releases + SET(RV_DEPS_OPENEXR_VERSION + "3.2.5" + ) + SET(RV_DEPS_OPENEXR_DOWNLOAD_HASH + "838dfec3bb2a60fee02cc4f0378b6a5c" + ) + SET(RV_DEPS_OPENEXR_LIBNAME_SUFFIX + "3_2" + ) + SET(RV_DEPS_OPENEXR_LIB_VERSION_SUFFIX + "31.${RV_DEPS_OPENEXR_VERSION}" + ) + SET(RV_DEPS_OPENEXR_PATCH_NAME + "openexr_${RV_DEPS_OPENEXR_VERSION}_invalid_to_black" + ) + + # OpenSSL https://github.com/openssl/openssl + SET(RV_DEPS_OPENSSL_VERSION + "3.4.0" + ) + SET(RV_DEPS_OPENSSL_HASH + "34733f7be2d60ecd8bd9ddb796e182af" + ) + SET(RV_DEPS_OPENSSL_VERSION_DOT + ".3" + ) + SET(RV_DEPS_OPENSSL_VERSION_UNDERSCORE + "3" + ) + + # PySide + SET(RV_DEPS_PYSIDE_VERSION + "6.5.3" + ) + SET(RV_DEPS_PYSIDE_DOWNLOAD_HASH + "515d3249c6e743219ff0d7dd25b8c8d8" + ) + SET(RV_DEPS_PYSIDE_TARGET + "RV_DEPS_PYSIDE6" + ) + SET(RV_DEPS_PYSIDE_ARCHIVE_URL + "https://mirrors.ocf.berkeley.edu/qt/official_releases/QtForPython/pyside6/PySide6-${RV_DEPS_PYSIDE_VERSION}-src/pyside-setup-everywhere-src-${RV_DEPS_PYSIDE_VERSION}.zip" + ) + + # Python https://www.python.org/downloads/source/ + SET(RV_DEPS_PYTHON_VERSION + "3.11.9" + ) + SET(RV_DEPS_PYTHON_DOWNLOAD_HASH + "392eccd4386936ffcc46ed08057db3e7" + ) + # SET(RV_DEPS_PYTHON_VERSION "3.11.14") SET(RV_DEPS_PYTHON_DOWNLOAD_HASH "5f43ab9d5a74b9ac0dd2e20f58740f9e") + + # Qt + SET(RV_DEPS_QT_VERSION + "6.5.3" + ) + SET(RV_DEPS_QT_MAJOR + "6" + ) +ENDIF() diff --git a/cmake/defaults/CY2025.cmake b/cmake/defaults/CY2025.cmake index ba3ac3467..36499ecda 100644 --- a/cmake/defaults/CY2025.cmake +++ b/cmake/defaults/CY2025.cmake @@ -1,63 +1,115 @@ -# CY2025 VFX Reference Platform versions of dependencies -# see https://vfxplatform.com/ +# CY2025 VFX Reference Platform versions of dependencies see https://vfxplatform.com/ IF(RV_VFX_PLATFORM STREQUAL "CY2025") - # Year - SET(RV_VFX_CY_YEAR "2025") - SET(RV_VFX_CY2025 ON ) - ADD_COMPILE_DEFINITIONS(QT65ON) - - # Boost - SET(RV_DEPS_BOOST_VERSION "1.85.0") - SET(RV_DEPS_BOOST_MAJOR_MINOR_VERSION "1_85") - SET(RV_DEPS_BOOST_DOWNLOAD_HASH "53aeccc3167909ee770e34469f8dd592") - - # Imath - # Can find the build version in OpenRV/_build/RV_DEPS_IMATH/install/lib/ - SET(RV_DEPS_IMATH_VERSION "3.1.12") - SET(RV_DEPS_IMATH_DOWNLOAD_HASH "d4059140972da68a2b5a1287ebe5a653") - SET(RV_DEPS_IMATH_LIB_VER "29.11.0") - SET(RV_DEPS_IMATH_LIB_MAJOR "3_1") - - # NumPy - # https://numpy.org/doc/stable/release.html - SET(ENV{RV_DEPS_NUMPY_VERSION} "1.26.4") - - # OCIO - # https://github.com/AcademySoftwareFoundation/OpenColorIO - SET(RV_DEPS_OCIO_VERSION "2.4.2") - SET(RV_DEPS_OCIO_VERSION_SHORT "2_4") - SET(RV_DEPS_OCIO_DOWNLOAD_HASH "1bc8f31a1479ce6518644cdd7df26631") - - # OpenEXR - # https://github.com/AcademySoftwareFoundation/openexr/releases - SET(RV_DEPS_OPENEXR_VERSION "3.3.6") - SET(RV_DEPS_OPENEXR_DOWNLOAD_HASH "a91a522132384ace0d8ffeb6e60a0732") - SET(RV_DEPS_OPENEXR_LIBNAME_SUFFIX "3_3") - SET(RV_DEPS_OPENEXR_LIB_VERSION_SUFFIX "32.${RV_DEPS_OPENEXR_VERSION}") - SET(RV_DEPS_OPENEXR_PATCH_NAME "openexr_${RV_DEPS_OPENEXR_VERSION}_invalid_to_black") - - # OpenSSL - # https://github.com/openssl/openssl - SET(RV_DEPS_OPENSSL_VERSION "3.4.0") - SET(RV_DEPS_OPENSSL_HASH "34733f7be2d60ecd8bd9ddb796e182af") - SET(RV_DEPS_OPENSSL_VERSION_DOT ".3") - SET(RV_DEPS_OPENSSL_VERSION_UNDERSCORE "3") - - # PySide - SET(RV_DEPS_PYSIDE_VERSION "6.5.3") - SET(RV_DEPS_PYSIDE_DOWNLOAD_HASH "515d3249c6e743219ff0d7dd25b8c8d8") - SET(RV_DEPS_PYSIDE_TARGET "RV_DEPS_PYSIDE6") - SET(RV_DEPS_PYSIDE_ARCHIVE_URL "https://mirrors.ocf.berkeley.edu/qt/official_releases/QtForPython/pyside6/PySide6-${RV_DEPS_PYSIDE_VERSION}-src/pyside-setup-everywhere-src-${RV_DEPS_PYSIDE_VERSION}.zip") - - # Python - # https://www.python.org/downloads/source/ - SET(RV_DEPS_PYTHON_VERSION "3.11.9") - SET(RV_DEPS_PYTHON_DOWNLOAD_HASH "392eccd4386936ffcc46ed08057db3e7") - # SET(RV_DEPS_PYTHON_VERSION "3.11.14") - # SET(RV_DEPS_PYTHON_DOWNLOAD_HASH "5f43ab9d5a74b9ac0dd2e20f58740f9e") - - # Qt - SET(RV_DEPS_QT_VERSION "6.5.3") - SET(RV_DEPS_QT_MAJOR "6") -ENDIF() \ No newline at end of file + # Year + SET(RV_VFX_CY_YEAR + "2025" + ) + SET(RV_VFX_CY2025 + ON + ) + ADD_COMPILE_DEFINITIONS(QT65ON) + + # Boost + SET(RV_DEPS_BOOST_VERSION + "1.85.0" + ) + SET(RV_DEPS_BOOST_MAJOR_MINOR_VERSION + "1_85" + ) + SET(RV_DEPS_BOOST_DOWNLOAD_HASH + "53aeccc3167909ee770e34469f8dd592" + ) + + # Imath Can find the build version in OpenRV/_build/RV_DEPS_IMATH/install/lib/ + SET(RV_DEPS_IMATH_VERSION + "3.1.12" + ) + SET(RV_DEPS_IMATH_DOWNLOAD_HASH + "d4059140972da68a2b5a1287ebe5a653" + ) + SET(RV_DEPS_IMATH_LIB_VER + "29.11.0" + ) + SET(RV_DEPS_IMATH_LIB_MAJOR + "3_1" + ) + + # NumPy https://numpy.org/doc/stable/release.html + SET(ENV{RV_DEPS_NUMPY_VERSION} + "1.26.4" + ) + + # OCIO https://github.com/AcademySoftwareFoundation/OpenColorIO + SET(RV_DEPS_OCIO_VERSION + "2.4.2" + ) + SET(RV_DEPS_OCIO_VERSION_SHORT + "2_4" + ) + SET(RV_DEPS_OCIO_DOWNLOAD_HASH + "1bc8f31a1479ce6518644cdd7df26631" + ) + + # OpenEXR https://github.com/AcademySoftwareFoundation/openexr/releases + SET(RV_DEPS_OPENEXR_VERSION + "3.3.6" + ) + SET(RV_DEPS_OPENEXR_DOWNLOAD_HASH + "a91a522132384ace0d8ffeb6e60a0732" + ) + SET(RV_DEPS_OPENEXR_LIBNAME_SUFFIX + "3_3" + ) + SET(RV_DEPS_OPENEXR_LIB_VERSION_SUFFIX + "32.${RV_DEPS_OPENEXR_VERSION}" + ) + SET(RV_DEPS_OPENEXR_PATCH_NAME + "openexr_${RV_DEPS_OPENEXR_VERSION}_invalid_to_black" + ) + + # OpenSSL https://github.com/openssl/openssl + SET(RV_DEPS_OPENSSL_VERSION + "3.4.0" + ) + SET(RV_DEPS_OPENSSL_HASH + "34733f7be2d60ecd8bd9ddb796e182af" + ) + SET(RV_DEPS_OPENSSL_VERSION_DOT + ".3" + ) + SET(RV_DEPS_OPENSSL_VERSION_UNDERSCORE + "3" + ) + + # PySide + SET(RV_DEPS_PYSIDE_VERSION + "6.5.3" + ) + SET(RV_DEPS_PYSIDE_DOWNLOAD_HASH + "515d3249c6e743219ff0d7dd25b8c8d8" + ) + SET(RV_DEPS_PYSIDE_TARGET + "RV_DEPS_PYSIDE6" + ) + SET(RV_DEPS_PYSIDE_ARCHIVE_URL + "https://mirrors.ocf.berkeley.edu/qt/official_releases/QtForPython/pyside6/PySide6-${RV_DEPS_PYSIDE_VERSION}-src/pyside-setup-everywhere-src-${RV_DEPS_PYSIDE_VERSION}.zip" + ) + + # Python https://www.python.org/downloads/source/ + SET(RV_DEPS_PYTHON_VERSION + "3.11.9" + ) + SET(RV_DEPS_PYTHON_DOWNLOAD_HASH + "392eccd4386936ffcc46ed08057db3e7" + ) + # SET(RV_DEPS_PYTHON_VERSION "3.11.14") SET(RV_DEPS_PYTHON_DOWNLOAD_HASH "5f43ab9d5a74b9ac0dd2e20f58740f9e") + + # Qt + SET(RV_DEPS_QT_VERSION + "6.5.3" + ) + SET(RV_DEPS_QT_MAJOR + "6" + ) +ENDIF() diff --git a/cmake/defaults/CY2026.cmake b/cmake/defaults/CY2026.cmake index 761710d99..3b3e773fb 100644 --- a/cmake/defaults/CY2026.cmake +++ b/cmake/defaults/CY2026.cmake @@ -1,61 +1,114 @@ -# CY2026 VFX Reference Platform versions of dependencies -# see https://vfxplatform.com/ +# CY2026 VFX Reference Platform versions of dependencies see https://vfxplatform.com/ IF(RV_VFX_PLATFORM STREQUAL "CY2026") - # Year - SET(RV_VFX_CY_YEAR "2026") - SET(RV_VFX_CY2026 ON ) - ADD_COMPILE_DEFINITIONS(QT65ON) - - # Boost - SET(RV_DEPS_BOOST_VERSION "1.88.0") - SET(RV_DEPS_BOOST_MAJOR_MINOR_VERSION "1_88") - SET(RV_DEPS_BOOST_DOWNLOAD_HASH "6cd58b3cc890e4fbbc036c7629129e18") - - # Imath - # Can find the build version in OpenRV/_build/RV_DEPS_IMATH/install/lib/ - SET(RV_DEPS_IMATH_VERSION "3.2.2") - SET(RV_DEPS_IMATH_DOWNLOAD_HASH "d9c3aadc25a7d47a893b649787e59a44") - SET(RV_DEPS_IMATH_LIB_VER "30.${RV_DEPS_IMATH_VERSION}") - SET(RV_DEPS_IMATH_LIB_MAJOR "3_2") - - # NumPy - # https://numpy.org/doc/stable/release.html - SET(ENV{RV_DEPS_NUMPY_VERSION} "2.3.0") - - # OCIO - # https://github.com/AcademySoftwareFoundation/OpenColorIO - SET(RV_DEPS_OCIO_VERSION "2.5.0") - SET(RV_DEPS_OCIO_VERSION_SHORT "2_5") - SET(RV_DEPS_OCIO_DOWNLOAD_HASH "fd402ea99fd2c4e5b43ea31b4a3387df") - - # OpenEXR - # https://github.com/AcademySoftwareFoundation/openexr/releases - SET(RV_DEPS_OPENEXR_VERSION "3.4.3") - SET(RV_DEPS_OPENEXR_DOWNLOAD_HASH "c11676598aa27a01a1cd21ad75b72e44") - SET(RV_DEPS_OPENEXR_LIBNAME_SUFFIX "3_4") - SET(RV_DEPS_OPENEXR_LIB_VERSION_SUFFIX "33.${RV_DEPS_OPENEXR_VERSION}") - SET(RV_DEPS_OPENEXR_PATCH_NAME "openexr_${RV_DEPS_OPENEXR_VERSION}_invalid_to_black") - - # OpenSSL - # https://github.com/openssl/openssl - SET(RV_DEPS_OPENSSL_VERSION "3.6.0") - SET(RV_DEPS_OPENSSL_HASH "77ab78417082f22a2ce809898bd44da0") - SET(RV_DEPS_OPENSSL_VERSION_DOT ".3") - SET(RV_DEPS_OPENSSL_VERSION_UNDERSCORE "3") - - # PySide - SET(RV_DEPS_PYSIDE_VERSION "6.8.3") - SET(RV_DEPS_PYSIDE_DOWNLOAD_HASH "2a81028f5896edeb9c2a80adac3a8e68") - SET(RV_DEPS_PYSIDE_TARGET "RV_DEPS_PYSIDE6") - SET(RV_DEPS_PYSIDE_ARCHIVE_URL "https://mirrors.ocf.berkeley.edu/qt/official_releases/QtForPython/pyside6/PySide6-${RV_DEPS_PYSIDE_VERSION}-src/pyside-setup-everywhere-src-${RV_DEPS_PYSIDE_VERSION}.zip") - - # Python - # https://www.python.org/downloads/source/ - SET(RV_DEPS_PYTHON_VERSION "3.13.9") - SET(RV_DEPS_PYTHON_DOWNLOAD_HASH "922596355aaa82f1f431fd88e114310d") - - # Qt - SET(RV_DEPS_QT_VERSION "6.8.3") - SET(RV_DEPS_QT_MAJOR "6") -ENDIF() \ No newline at end of file + # Year + SET(RV_VFX_CY_YEAR + "2026" + ) + SET(RV_VFX_CY2026 + ON + ) + ADD_COMPILE_DEFINITIONS(QT65ON) + + # Boost + SET(RV_DEPS_BOOST_VERSION + "1.88.0" + ) + SET(RV_DEPS_BOOST_MAJOR_MINOR_VERSION + "1_88" + ) + SET(RV_DEPS_BOOST_DOWNLOAD_HASH + "6cd58b3cc890e4fbbc036c7629129e18" + ) + + # Imath Can find the build version in OpenRV/_build/RV_DEPS_IMATH/install/lib/ + SET(RV_DEPS_IMATH_VERSION + "3.2.2" + ) + SET(RV_DEPS_IMATH_DOWNLOAD_HASH + "d9c3aadc25a7d47a893b649787e59a44" + ) + SET(RV_DEPS_IMATH_LIB_VER + "30.${RV_DEPS_IMATH_VERSION}" + ) + SET(RV_DEPS_IMATH_LIB_MAJOR + "3_2" + ) + + # NumPy https://numpy.org/doc/stable/release.html + SET(ENV{RV_DEPS_NUMPY_VERSION} + "2.3.0" + ) + + # OCIO https://github.com/AcademySoftwareFoundation/OpenColorIO + SET(RV_DEPS_OCIO_VERSION + "2.5.0" + ) + SET(RV_DEPS_OCIO_VERSION_SHORT + "2_5" + ) + SET(RV_DEPS_OCIO_DOWNLOAD_HASH + "fd402ea99fd2c4e5b43ea31b4a3387df" + ) + + # OpenEXR https://github.com/AcademySoftwareFoundation/openexr/releases + SET(RV_DEPS_OPENEXR_VERSION + "3.4.3" + ) + SET(RV_DEPS_OPENEXR_DOWNLOAD_HASH + "c11676598aa27a01a1cd21ad75b72e44" + ) + SET(RV_DEPS_OPENEXR_LIBNAME_SUFFIX + "3_4" + ) + SET(RV_DEPS_OPENEXR_LIB_VERSION_SUFFIX + "33.${RV_DEPS_OPENEXR_VERSION}" + ) + SET(RV_DEPS_OPENEXR_PATCH_NAME + "openexr_${RV_DEPS_OPENEXR_VERSION}_invalid_to_black" + ) + + # OpenSSL https://github.com/openssl/openssl + SET(RV_DEPS_OPENSSL_VERSION + "3.6.0" + ) + SET(RV_DEPS_OPENSSL_HASH + "77ab78417082f22a2ce809898bd44da0" + ) + SET(RV_DEPS_OPENSSL_VERSION_DOT + ".3" + ) + SET(RV_DEPS_OPENSSL_VERSION_UNDERSCORE + "3" + ) + + # PySide + SET(RV_DEPS_PYSIDE_VERSION + "6.8.3" + ) + SET(RV_DEPS_PYSIDE_DOWNLOAD_HASH + "2a81028f5896edeb9c2a80adac3a8e68" + ) + SET(RV_DEPS_PYSIDE_TARGET + "RV_DEPS_PYSIDE6" + ) + SET(RV_DEPS_PYSIDE_ARCHIVE_URL + "https://mirrors.ocf.berkeley.edu/qt/official_releases/QtForPython/pyside6/PySide6-${RV_DEPS_PYSIDE_VERSION}-src/pyside-setup-everywhere-src-${RV_DEPS_PYSIDE_VERSION}.zip" + ) + + # Python https://www.python.org/downloads/source/ + SET(RV_DEPS_PYTHON_VERSION + "3.13.9" + ) + SET(RV_DEPS_PYTHON_DOWNLOAD_HASH + "922596355aaa82f1f431fd88e114310d" + ) + + # Qt + SET(RV_DEPS_QT_VERSION + "6.8.3" + ) + SET(RV_DEPS_QT_MAJOR + "6" + ) +ENDIF() diff --git a/cmake/defaults/CYCOMMON.cmake b/cmake/defaults/CYCOMMON.cmake index 6ab2542bf..2d3677f01 100644 --- a/cmake/defaults/CYCOMMON.cmake +++ b/cmake/defaults/CYCOMMON.cmake @@ -1,153 +1,267 @@ -# Common build dependencies for all CY20XX platforms -# aja -# https://github.com/aja-video/libajantv2 -SET(RV_DEPS_AJA_VERSION "17.1.0") -SET(RV_DEPS_AJA_DOWNLOAD_HASH "b9d189f77e18dbdff7c39a339b1a5dd4") - -# atomic_ops -# https://github.com/ivmai/libatomic_ops -SET(RV_DEPS_ATOMIC_OPS_VERSION "7.7.0") -SET(RV_DEPS_ATOMIC_OPS_DOWNLOAD_HASH "cc7fad1e71b3064abe1ea821ae9a9a6e") - -# dav1d -# https://github.com/videolan/dav1d -SET(RV_DEPS_DAV1D_VERSION "1.4.3") -SET(RV_DEPS_DAV1D_DOWNLOAD_HASH "2c62106fda87a69122dc8709243a34e8") - -# doctest -# https://github.com/doctest/doctest -SET(RV_DEPS_DOCTEST_VERSION "2.4.9") -SET(RV_DEPS_DOCTEST_DOWNLOAD_HASH "a7948b5ec1f69de6f84c7d7487aaf79b") - -# expat -# https://github.com/libexpat/libexpat -SET(RV_DEPS_EXPAT_VERSION "2.6.3") -SET(RV_DEPS_EXPAT_DOWNLOAD_HASH "985086e206a01e652ca460eb069e4780") - -# ffmpeg -# https://github.com/FFmpeg/FFmpeg +# Common build dependencies for all CY20XX platforms aja https://github.com/aja-video/libajantv2 +SET(RV_DEPS_AJA_VERSION + "17.1.0" +) +SET(RV_DEPS_AJA_DOWNLOAD_HASH + "b9d189f77e18dbdff7c39a339b1a5dd4" +) + +# atomic_ops https://github.com/ivmai/libatomic_ops +SET(RV_DEPS_ATOMIC_OPS_VERSION + "7.7.0" +) +SET(RV_DEPS_ATOMIC_OPS_DOWNLOAD_HASH + "cc7fad1e71b3064abe1ea821ae9a9a6e" +) + +# dav1d https://github.com/videolan/dav1d +SET(RV_DEPS_DAV1D_VERSION + "1.4.3" +) +SET(RV_DEPS_DAV1D_DOWNLOAD_HASH + "2c62106fda87a69122dc8709243a34e8" +) + +# doctest https://github.com/doctest/doctest +SET(RV_DEPS_DOCTEST_VERSION + "2.4.9" +) +SET(RV_DEPS_DOCTEST_DOWNLOAD_HASH + "a7948b5ec1f69de6f84c7d7487aaf79b" +) + +# expat https://github.com/libexpat/libexpat +SET(RV_DEPS_EXPAT_VERSION + "2.6.3" +) +SET(RV_DEPS_EXPAT_DOWNLOAD_HASH + "985086e206a01e652ca460eb069e4780" +) + +# ffmpeg https://github.com/FFmpeg/FFmpeg IF(RV_FFMPEG STREQUAL 8) - SET(RV_FFMPEG_8 ON) - ADD_COMPILE_DEFINITIONS(RV_FFMPEG_8) - SET(RV_DEPS_FFMPEG_VERSION "n8.0") - SET(RV_DEPS_FFMPEG_DOWNLOAD_HASH "fcf93d5855f654b82d4aa8aae62d64d3") - SET(RV_DEPS_FFMPEG_VERSION_LIB_avutil "60") - SET(RV_DEPS_FFMPEG_VERSION_LIB_swresample "6") - SET(RV_DEPS_FFMPEG_VERSION_LIB_swscale "9") - SET(RV_DEPS_FFMPEG_VERSION_LIB_avcodec "62") - SET(RV_DEPS_FFMPEG_VERSION_LIB_avformat "62") + SET(RV_FFMPEG_8 + ON + ) + ADD_COMPILE_DEFINITIONS(RV_FFMPEG_8) + SET(RV_DEPS_FFMPEG_VERSION + "n8.0" + ) + SET(RV_DEPS_FFMPEG_DOWNLOAD_HASH + "fcf93d5855f654b82d4aa8aae62d64d3" + ) + SET(RV_DEPS_FFMPEG_VERSION_LIB_avutil + "60" + ) + SET(RV_DEPS_FFMPEG_VERSION_LIB_swresample + "6" + ) + SET(RV_DEPS_FFMPEG_VERSION_LIB_swscale + "9" + ) + SET(RV_DEPS_FFMPEG_VERSION_LIB_avcodec + "62" + ) + SET(RV_DEPS_FFMPEG_VERSION_LIB_avformat + "62" + ) ELSEIF(RV_FFMPEG STREQUAL 7) - SET(RV_FFMPEG_7 ON) - ADD_COMPILE_DEFINITIONS(RV_FFMPEG_7) - SET(RV_DEPS_FFMPEG_VERSION "n7.1") - SET(RV_DEPS_FFMPEG_DOWNLOAD_HASH "a7a85ec05c9bc3aeefee12743899d8ab") - SET(RV_DEPS_FFMPEG_VERSION_LIB_avutil "59") - SET(RV_DEPS_FFMPEG_VERSION_LIB_swresample "5") - SET(RV_DEPS_FFMPEG_VERSION_LIB_swscale "8") - SET(RV_DEPS_FFMPEG_VERSION_LIB_avcodec "61") - SET(RV_DEPS_FFMPEG_VERSION_LIB_avformat "61") + SET(RV_FFMPEG_7 + ON + ) + ADD_COMPILE_DEFINITIONS(RV_FFMPEG_7) + SET(RV_DEPS_FFMPEG_VERSION + "n7.1" + ) + SET(RV_DEPS_FFMPEG_DOWNLOAD_HASH + "a7a85ec05c9bc3aeefee12743899d8ab" + ) + SET(RV_DEPS_FFMPEG_VERSION_LIB_avutil + "59" + ) + SET(RV_DEPS_FFMPEG_VERSION_LIB_swresample + "5" + ) + SET(RV_DEPS_FFMPEG_VERSION_LIB_swscale + "8" + ) + SET(RV_DEPS_FFMPEG_VERSION_LIB_avcodec + "61" + ) + SET(RV_DEPS_FFMPEG_VERSION_LIB_avformat + "61" + ) ELSEIF(RV_FFMPEG STREQUAL 6) - SET(RV_FFMPEG_6 ON) - ADD_COMPILE_DEFINITIONS(RV_FFMPEG_6) - SET(RV_DEPS_FFMPEG_VERSION "n6.1.2") - SET(RV_DEPS_FFMPEG_DOWNLOAD_HASH "953b858e5be3ab66232bdbb90e42f50d") - SET(RV_DEPS_FFMPEG_VERSION_LIB_avutil "58") - SET(RV_DEPS_FFMPEG_VERSION_LIB_swresample "4") - SET(RV_DEPS_FFMPEG_VERSION_LIB_swscale "7") - SET(RV_DEPS_FFMPEG_VERSION_LIB_avcodec "60") - SET(RV_DEPS_FFMPEG_VERSION_LIB_avformat "60") + SET(RV_FFMPEG_6 + ON + ) + ADD_COMPILE_DEFINITIONS(RV_FFMPEG_6) + SET(RV_DEPS_FFMPEG_VERSION + "n6.1.2" + ) + SET(RV_DEPS_FFMPEG_DOWNLOAD_HASH + "953b858e5be3ab66232bdbb90e42f50d" + ) + SET(RV_DEPS_FFMPEG_VERSION_LIB_avutil + "58" + ) + SET(RV_DEPS_FFMPEG_VERSION_LIB_swresample + "4" + ) + SET(RV_DEPS_FFMPEG_VERSION_LIB_swscale + "7" + ) + SET(RV_DEPS_FFMPEG_VERSION_LIB_avcodec + "60" + ) + SET(RV_DEPS_FFMPEG_VERSION_LIB_avformat + "60" + ) ELSE() # This will happene if a valid RV_FFMPEG is not defined - MESSAGE(FATAL_ERROR "FFMPEG_8, RV_FFMPEG_7, or RV_FFMPEG_6 must be defined to select the FFMPEG version to use") + MESSAGE(FATAL_ERROR "FFMPEG_8, RV_FFMPEG_7, or RV_FFMPEG_6 must be defined to select the FFMPEG version to use") ENDIF() -# gc -# https://github.com/ivmai/bdwgc -SET(RV_DEPS_GC_VERSION "8.2.2") -SET(RV_DEPS_GC_DOWNLOAD_HASH "2ca38d05e1026b3426cf6c24ca3a7787") +# gc https://github.com/ivmai/bdwgc +SET(RV_DEPS_GC_VERSION + "8.2.2" +) +SET(RV_DEPS_GC_DOWNLOAD_HASH + "2ca38d05e1026b3426cf6c24ca3a7787" +) -# glew -# https://github.com/nigels-com/glew -SET(RV_DEPS_GLEW_VERSION "e1a80a9f12d7def202d394f46e44cfced1104bfb") -SET(RV_DEPS_GLEW_DOWNLOAD_HASH "9bfc689dabeb4e305ce80b5b6f28bcf9") -SET(RV_DEPS_GLEW_VERSION_LIB "2.2.0") +# glew https://github.com/nigels-com/glew +SET(RV_DEPS_GLEW_VERSION + "e1a80a9f12d7def202d394f46e44cfced1104bfb" +) +SET(RV_DEPS_GLEW_DOWNLOAD_HASH + "9bfc689dabeb4e305ce80b5b6f28bcf9" +) +SET(RV_DEPS_GLEW_VERSION_LIB + "2.2.0" +) -# imgui -# https://github.com/pthom/imgui +# imgui https://github.com/pthom/imgui # -# Note this also depends on the following repositories: -# https://github.com/pthom/implot.git -# https://github.com/dpaulat/imgui-backend-qt.git +# Note this also depends on the following repositories: https://github.com/pthom/implot.git https://github.com/dpaulat/imgui-backend-qt.git # https://github.com/pthom/imgui-node-editor.git -SET(RV_DEPS_IMGUI_VERSION "bundle_20250323") -SET(RV_DEPS_IMGUI_DOWNLOAD_HASH "1ea3f48e9c6ae8230dac6e8a54f6e74b") -SET(RV_DEPS_IMPLOT_TAG "61af48ee1369083a3da391a849867af6d1b811a6") -SET(RV_DEPS_IMGUI_BACKEND_QT_TAG "023345ca8abf731fc50568c0197ceebe76bb4324") -SET(RV_DEPS_IMGUI_NODE_EDITOR_TAG "dae8edccf15d19e995599ecd505e7fa1d3264a4c") - -# jpegturbo -# https://github.com/libjpeg-turbo/libjpeg-turbo -# TODO: Needs additional work in cmake/dependencies/jpegturbo.cmake -# to fully integrate new versioning scheme with libs -SET(RV_DEPS_JPEGTURBO_VERSION "2.1.4") -SET(RV_DEPS_JPEGTURBO_DOWNLOAD_HASH "357dc26a802c34387512a42697846d16") -SET(RV_DEPS_JPEGTURBO_VERSION_LIB "62.3.0") - -# oiio -# https://github.com/AcademySoftwareFoundation/OpenImageIO -SET(RV_DEPS_OIIO_VERSION "2.5.19.1") -SET(RV_DEPS_OIIO_DOWNLOAD_HASH "5af6de5a73c6d234eed8e2874a5aed62") - -# openjpeg -# https://github.com/uclouvain/openjpeg -SET(RV_DEPS_OPENJPEG_VERSION "2.5.0") -SET(RV_DEPS_OPENJPEG_DOWNLOAD_HASH "5cbb822a1203dd75b85639da4f4ecaab") - -# openjph -# https://github.com/aous72/OpenJPH -SET(RV_DEPS_OPENJPH_VERSION "0.21.3") -SET(RV_DEPS_OPENJPH_DOWNLOAD_HASH "d0a3fb5f643a8948d5874624ff94a229") - -# otio -# https://github.com/AcademySoftwareFoundation/OpenTimelineIO -SET(RV_DEPS_OTIO_VERSION "0.18.1") - -# pcre2 -# https://github.com/PCRE2Project/pcre2 -SET(RV_DEPS_PCRE2_VERSION "10.43") -SET(RV_DEPS_PCRE2_DOWNLOAD_HASH "e4c3f2a24eb5c15bec8360e50b3f0137") - -# png -# https://github.com/glennrp/libpng -SET(RV_DEPS_PNG_VERSION "1.6.48") -SET(RV_DEPS_PNG_DOWNLOAD_HASH "be6cc9e411c26115db3b9eab1159a1d9") - -# raw -# https://github.com/LibRaw/LibRaw -# Please check the libraw_version.h file for your version number to get the LIBRAW_SHLIB_CURRENT value +SET(RV_DEPS_IMGUI_VERSION + "bundle_20250323" +) +SET(RV_DEPS_IMGUI_DOWNLOAD_HASH + "1ea3f48e9c6ae8230dac6e8a54f6e74b" +) +SET(RV_DEPS_IMPLOT_TAG + "61af48ee1369083a3da391a849867af6d1b811a6" +) +SET(RV_DEPS_IMGUI_BACKEND_QT_TAG + "023345ca8abf731fc50568c0197ceebe76bb4324" +) +SET(RV_DEPS_IMGUI_NODE_EDITOR_TAG + "dae8edccf15d19e995599ecd505e7fa1d3264a4c" +) + +# jpegturbo https://github.com/libjpeg-turbo/libjpeg-turbo TODO: Needs additional work in cmake/dependencies/jpegturbo.cmake to fully integrate new versioning +# scheme with libs +SET(RV_DEPS_JPEGTURBO_VERSION + "2.1.4" +) +SET(RV_DEPS_JPEGTURBO_DOWNLOAD_HASH + "357dc26a802c34387512a42697846d16" +) +SET(RV_DEPS_JPEGTURBO_VERSION_LIB + "62.3.0" +) + +# oiio https://github.com/AcademySoftwareFoundation/OpenImageIO +SET(RV_DEPS_OIIO_VERSION + "2.5.19.1" +) +SET(RV_DEPS_OIIO_DOWNLOAD_HASH + "5af6de5a73c6d234eed8e2874a5aed62" +) + +# openjpeg https://github.com/uclouvain/openjpeg +SET(RV_DEPS_OPENJPEG_VERSION + "2.5.0" +) +SET(RV_DEPS_OPENJPEG_DOWNLOAD_HASH + "5cbb822a1203dd75b85639da4f4ecaab" +) + +# openjph https://github.com/aous72/OpenJPH +SET(RV_DEPS_OPENJPH_VERSION + "0.21.3" +) +SET(RV_DEPS_OPENJPH_DOWNLOAD_HASH + "d0a3fb5f643a8948d5874624ff94a229" +) + +# otio https://github.com/AcademySoftwareFoundation/OpenTimelineIO +SET(RV_DEPS_OTIO_VERSION + "0.18.1" +) + +# pcre2 https://github.com/PCRE2Project/pcre2 +SET(RV_DEPS_PCRE2_VERSION + "10.43" +) +SET(RV_DEPS_PCRE2_DOWNLOAD_HASH + "e4c3f2a24eb5c15bec8360e50b3f0137" +) + +# png https://github.com/glennrp/libpng +SET(RV_DEPS_PNG_VERSION + "1.6.48" +) +SET(RV_DEPS_PNG_DOWNLOAD_HASH + "be6cc9e411c26115db3b9eab1159a1d9" +) + +# raw https://github.com/LibRaw/LibRaw Please check the libraw_version.h file for your version number to get the LIBRAW_SHLIB_CURRENT value # https://github.com/LibRaw/LibRaw/blob/0.21-stable/libraw/libraw_version.h -SET(RV_DEPS_RAW_VERSION "0.21.1") -SET(RV_DEPS_RAW_DOWNLOAD_HASH "3ad334296a7a2c8ee841f353cc1b450b") -SET(RV_DEPS_RAW_VERSION_LIB "23") - -# spdlog -# https://github.com/gabime/spdlog -SET(RV_DEPS_SPDLOG_VERSION "1.11.0") -SET(RV_DEPS_SPDLOG_DOWNLOAD_HASH "cd620e0f103737a122a3b6539bd0a57a") - -# tiff -# https://gitlab.com/libtiff/libtiff -SET(RV_DEPS_TIFF_VERSION "4.6.0") -SET(RV_DEPS_TIFF_DOWNLOAD_HASH "118a2e5fc9ed71653195b332b9715890") -SET(RV_DEPS_TIFF_VERSION_LIB "6.0.2") - -# webp -# https://github.com/webmproject/libwebp -SET(RV_DEPS_WEBP_VERSION "1.2.1") -SET(RV_DEPS_WEBP_DOWNLOAD_HASH "ef5ac6de4b800afaebeb10df9ef189b2") - -# zlib -# https://github.com/madler/zlib -SET(RV_DEPS_ZLIB_VERSION "1.3.1") -SET(RV_DEPS_ZLIB_DOWNLOAD_HASH "127b8a71a3fb8bebe89df1080f15fdf6") +SET(RV_DEPS_RAW_VERSION + "0.21.1" +) +SET(RV_DEPS_RAW_DOWNLOAD_HASH + "3ad334296a7a2c8ee841f353cc1b450b" +) +SET(RV_DEPS_RAW_VERSION_LIB + "23" +) + +# spdlog https://github.com/gabime/spdlog +SET(RV_DEPS_SPDLOG_VERSION + "1.11.0" +) +SET(RV_DEPS_SPDLOG_DOWNLOAD_HASH + "cd620e0f103737a122a3b6539bd0a57a" +) + +# tiff https://gitlab.com/libtiff/libtiff +SET(RV_DEPS_TIFF_VERSION + "4.6.0" +) +SET(RV_DEPS_TIFF_DOWNLOAD_HASH + "118a2e5fc9ed71653195b332b9715890" +) +SET(RV_DEPS_TIFF_VERSION_LIB + "6.0.2" +) + +# webp https://github.com/webmproject/libwebp +SET(RV_DEPS_WEBP_VERSION + "1.2.1" +) +SET(RV_DEPS_WEBP_DOWNLOAD_HASH + "ef5ac6de4b800afaebeb10df9ef189b2" +) + +# zlib https://github.com/madler/zlib +SET(RV_DEPS_ZLIB_VERSION + "1.3.1" +) +SET(RV_DEPS_ZLIB_DOWNLOAD_HASH + "127b8a71a3fb8bebe89df1080f15fdf6" +) diff --git a/cmake/defaults/cxx_clang_defaults.cmake b/cmake/defaults/cxx_clang_defaults.cmake index ec1e7893e..27b0f9668 100644 --- a/cmake/defaults/cxx_clang_defaults.cmake +++ b/cmake/defaults/cxx_clang_defaults.cmake @@ -14,19 +14,17 @@ ELSE() ENDIF() IF(NOT RV_TARGET_APPLE_ARM64) - SET(__compiler_options_x86_64 -msse -msse2 -msse3 -mmmx) + SET(__compiler_options_x86_64 + -msse -msse2 -msse3 -mmmx + ) ENDIF() SET(__compiler_options__ - -Wall ${__compiler_options_x86_64} + -Wall ${__compiler_options_x86_64} ) # Common options -ADD_COMPILE_OPTIONS( - ${_verbose_invocation} - ${_compiler_options__} - -Wnonportable-include-path -) +ADD_COMPILE_OPTIONS(${_verbose_invocation} ${_compiler_options__} -Wnonportable-include-path) IF(${CMAKE_BUILD_TYPE} STREQUAL "Release") # Release build specific options diff --git a/cmake/defaults/cxx_defaults.cmake b/cmake/defaults/cxx_defaults.cmake index 5d338d4c3..318eff3a4 100644 --- a/cmake/defaults/cxx_defaults.cmake +++ b/cmake/defaults/cxx_defaults.cmake @@ -64,12 +64,9 @@ INCLUDE(CYCOMMON) # # VFX Platform option # -# Add preprocessor variable for use in the code and cmake variable to -# decide the version of an external dependencies based on the VFX -# platform. +# Add preprocessor variable for use in the code and cmake variable to decide the version of an external dependencies based on the VFX platform. # -# Note that the macro in rv_vfx.cmake are dependant on those -# RV_VFX_CY20XX. +# Note that the macro in rv_vfx.cmake are dependant on those RV_VFX_CY20XX. INCLUDE(${RV_VFX_PLATFORM}) IF(RV_VFX_PLATFORM STRGREATER_EQUAL "CY2024") @@ -81,9 +78,9 @@ IF(RV_VFX_PLATFORM STRGREATER_EQUAL "CY2024") ) ELSEIF(RV_VFX_PLATFORM STREQUAL "CY2023") SET(RV_QT_PACKAGE_NAME - "Qt5" ) + "Qt5" + ) SET(RV_QT_MU_TARGET "MuQt5" ) ENDIF() - diff --git a/cmake/dependencies/CMakeLists.txt b/cmake/dependencies/CMakeLists.txt index 65c581134..6939970e0 100644 --- a/cmake/dependencies/CMakeLists.txt +++ b/cmake/dependencies/CMakeLists.txt @@ -114,7 +114,9 @@ MESSAGE(STATUS "Using FFMPEG: ${RV_DEPS_FFMPEG_VERSION}") IF(RV_TARGET_WINDOWS) MESSAGE(STATUS "Using atomic_ops: ${RV_DEPS_ATOMIC_OPS_VERSION}") ENDIF() -IF(RV_TARGET_DARWIN OR RV_TARGET_LINUX) +IF(RV_TARGET_DARWIN + OR RV_TARGET_LINUX +) MESSAGE(STATUS "Using GC: ${RV_DEPS_GC_VERSION}") MESSAGE(STATUS "Using GLEW: ${RV_DEPS_GLEW_VERSION}") ENDIF() diff --git a/cmake/dependencies/boost.cmake b/cmake/dependencies/boost.cmake index 30b9b1c52..9337a4746 100644 --- a/cmake/dependencies/boost.cmake +++ b/cmake/dependencies/boost.cmake @@ -12,10 +12,15 @@ INCLUDE(ProcessorCount) # require CMake 3.15+ PROCESSORCOUNT(_cpu_count) -SET(_ext_boost_version ${RV_DEPS_BOOST_VERSION}) -SET(_major_minor_version ${RV_DEPS_BOOST_MAJOR_MINOR_VERSION}) -SET(_download_hash ${RV_DEPS_BOOST_DOWNLOAD_HASH}) - +SET(_ext_boost_version + ${RV_DEPS_BOOST_VERSION} +) +SET(_major_minor_version + ${RV_DEPS_BOOST_MAJOR_MINOR_VERSION} +) +SET(_download_hash + ${RV_DEPS_BOOST_DOWNLOAD_HASH} +) RV_CREATE_STANDARD_DEPS_VARIABLES("RV_DEPS_BOOST" "${_ext_boost_version}" "" "") RV_SHOW_STANDARD_DEPS_VARIABLES() diff --git a/cmake/dependencies/dav1d.cmake b/cmake/dependencies/dav1d.cmake index 569032f65..4f5082a68 100644 --- a/cmake/dependencies/dav1d.cmake +++ b/cmake/dependencies/dav1d.cmake @@ -60,8 +60,7 @@ SET(_make_command ) IF(APPLE) - # Cross-file must be specified because if Rosetta is used to compile for x86_64 from ARM64, - # Meson still detects ARM64 as the default architecture. + # Cross-file must be specified because if Rosetta is used to compile for x86_64 from ARM64, Meson still detects ARM64 as the default architecture. IF(RV_TARGET_APPLE_X86_64) SET(_meson_cross_file @@ -69,12 +68,12 @@ IF(APPLE) ) ELSEIF(RV_TARGET_APPLE_ARM64) SET(_meson_cross_file - "${PROJECT_SOURCE_DIR}/src/build/meson_arch_arm64.txt" + "${PROJECT_SOURCE_DIR}/src/build/meson_arch_arm64.txt" ) ENDIF() SET(_configure_command - ${_configure_command} "--cross-file" ${_meson_cross_file} + ${_configure_command} "--cross-file" ${_meson_cross_file} ) ENDIF() @@ -97,7 +96,8 @@ EXTERNALPROJECT_ADD( INSTALL_DIR ${_install_dir} URL ${_download_url} URL_MD5 ${_download_hash} - CONFIGURE_COMMAND ${_configure_command} ./_build --libdir=${_lib_dir_name} --default-library=${_default_library} --prefix=${_install_dir} -Denable_tests=false -Denable_tools=false + CONFIGURE_COMMAND ${_configure_command} ./_build --libdir=${_lib_dir_name} --default-library=${_default_library} --prefix=${_install_dir} -Denable_tests=false + -Denable_tools=false BUILD_COMMAND ${_make_command} -C _build INSTALL_COMMAND ${_make_command} -C _build install COMMAND ${CMAKE_COMMAND} -E copy_directory ${_lib_dir} ${RV_STAGE_LIB_DIR} diff --git a/cmake/dependencies/expat.cmake b/cmake/dependencies/expat.cmake index bd2fb6a8b..56a976a62 100644 --- a/cmake/dependencies/expat.cmake +++ b/cmake/dependencies/expat.cmake @@ -14,8 +14,7 @@ PROCESSORCOUNT(_cpu_count) RV_CREATE_STANDARD_DEPS_VARIABLES("RV_DEPS_EXPAT" "${RV_DEPS_EXPAT_VERSION}" "" "") RV_SHOW_STANDARD_DEPS_VARIABLES() - -string(REPLACE "." "_" _version_underscored ${_version}) +STRING(REPLACE "." "_" _version_underscored ${_version}) SET(_download_url "https://github.com/libexpat/libexpat/archive/refs/tags/R_${_version_underscored}.tar.gz" ) @@ -31,7 +30,7 @@ SET(_libexpat_lib_version RV_MAKE_STANDARD_LIB_NAME("libexpat" "" "SHARED" "d") # Remove the -S argument from _configure_options, and adjust the path for Expat. -list(REMOVE_ITEM _configure_options "-S ${_source_dir}") +LIST(REMOVE_ITEM _configure_options "-S ${_source_dir}") # Expat source is under expat folder and not directly under repository root. LIST(APPEND _configure_options "-S ${_source_dir}/expat") @@ -66,16 +65,15 @@ ADD_DEPENDENCIES(dependencies ${_target}-stage-target) ADD_LIBRARY(EXPAT::EXPAT SHARED IMPORTED GLOBAL) ADD_DEPENDENCIES(EXPAT::EXPAT ${_target}) -# An import library (.lib) file is often used to resolve references to -# functions and variables in a DLL, enabling the linker to generate code -# for loading the DLL and calling its functions at runtime. +# An import library (.lib) file is often used to resolve references to functions and variables in a DLL, enabling the linker to generate code for loading the +# DLL and calling its functions at runtime. SET_PROPERTY( - TARGET EXPAT::EXPAT - PROPERTY IMPORTED_LOCATION "${_libpath}" + TARGET EXPAT::EXPAT + PROPERTY IMPORTED_LOCATION "${_libpath}" ) SET_PROPERTY( - TARGET EXPAT::EXPAT - PROPERTY IMPORTED_IMPLIB "${_implibpath}" + TARGET EXPAT::EXPAT + PROPERTY IMPORTED_IMPLIB "${_implibpath}" ) # It is required to force directory creation at configure time otherwise CMake complains about importing a non-existing path @@ -85,4 +83,4 @@ TARGET_INCLUDE_DIRECTORIES( INTERFACE ${_include_dir} ) -LIST(APPEND RV_DEPS_LIST EXPAT::EXPAT) \ No newline at end of file +LIST(APPEND RV_DEPS_LIST EXPAT::EXPAT) diff --git a/cmake/dependencies/imath.cmake b/cmake/dependencies/imath.cmake index dae637eb9..0def6a96a 100644 --- a/cmake/dependencies/imath.cmake +++ b/cmake/dependencies/imath.cmake @@ -23,7 +23,9 @@ SET(_install_dir SET(_include_dir ${_install_dir}/include/Imath ) -SET(RV_DEPS_IMATH_ROOT_DIR ${_install_dir}) +SET(RV_DEPS_IMATH_ROOT_DIR + ${_install_dir} +) IF(RV_TARGET_DARWIN) SET(_libname diff --git a/cmake/dependencies/imgui/CMakeLists_PyImGUI.cmake b/cmake/dependencies/imgui/CMakeLists_PyImGUI.cmake index 0d900a0ec..b44882e44 100644 --- a/cmake/dependencies/imgui/CMakeLists_PyImGUI.cmake +++ b/cmake/dependencies/imgui/CMakeLists_PyImGUI.cmake @@ -29,16 +29,23 @@ SET(IMGUI_NB_HEADERS # Overwrite NB_SUFFIX to control the name of the output library. IF(RV_TARGET_WINDOWS) - SET(NB_SUFFIX ".pyd") + SET(NB_SUFFIX + ".pyd" + ) ELSE() - SET(NB_SUFFIX "${CMAKE_SHARED_MODULE_SUFFIX}") + SET(NB_SUFFIX + "${CMAKE_SHARED_MODULE_SUFFIX}" + ) ENDIF() NANOBIND_ADD_MODULE(pyimgui ${IMGUI_NB_SOURCES}) # Set the correct suffix for Windows Python modules IF(RV_TARGET_WINDOWS) - SET_TARGET_PROPERTIES(pyimgui PROPERTIES SUFFIX ".pyd") + SET_TARGET_PROPERTIES( + pyimgui + PROPERTIES SUFFIX ".pyd" + ) ENDIF() TARGET_LINK_LIBRARIES( diff --git a/cmake/dependencies/imgui/CMakeLists_PyImplot.cmake b/cmake/dependencies/imgui/CMakeLists_PyImplot.cmake index fde15f3aa..debfe71c4 100644 --- a/cmake/dependencies/imgui/CMakeLists_PyImplot.cmake +++ b/cmake/dependencies/imgui/CMakeLists_PyImplot.cmake @@ -25,16 +25,23 @@ SET(IMPLOT_NB_SOURCES # Overwrite NB_SUFFIX to control the name of the output library. IF(RV_TARGET_WINDOWS) - SET(NB_SUFFIX ".pyd") + SET(NB_SUFFIX + ".pyd" + ) ELSE() - SET(NB_SUFFIX "${CMAKE_SHARED_MODULE_SUFFIX}") + SET(NB_SUFFIX + "${CMAKE_SHARED_MODULE_SUFFIX}" + ) ENDIF() NANOBIND_ADD_MODULE(pyimplot ${IMPLOT_NB_SOURCES}) # Set the correct suffix for Windows Python modules IF(RV_TARGET_WINDOWS) - SET_TARGET_PROPERTIES(pyimplot PROPERTIES SUFFIX ".pyd") + SET_TARGET_PROPERTIES( + pyimplot + PROPERTIES SUFFIX ".pyd" + ) ENDIF() TARGET_LINK_LIBRARIES( diff --git a/cmake/dependencies/jpegturbo.cmake b/cmake/dependencies/jpegturbo.cmake index b4b926a69..1b214003b 100644 --- a/cmake/dependencies/jpegturbo.cmake +++ b/cmake/dependencies/jpegturbo.cmake @@ -108,8 +108,7 @@ EXTERNALPROJECT_ADD( IF(NOT RV_TARGET_WINDOWS) RV_COPY_LIB_BIN_FOLDERS() ELSE() - # Don't use RV_COPY_LIB_BIN_FOLDERS() because RV don't need the whole bin directory. - # Copying the two DLLs from jpegturbo. + # Don't use RV_COPY_LIB_BIN_FOLDERS() because RV don't need the whole bin directory. Copying the two DLLs from jpegturbo. ADD_CUSTOM_COMMAND( TARGET ${_target} POST_BUILD diff --git a/cmake/dependencies/ocio.cmake b/cmake/dependencies/ocio.cmake index 137ef5136..a45d8d8da 100644 --- a/cmake/dependencies/ocio.cmake +++ b/cmake/dependencies/ocio.cmake @@ -31,7 +31,7 @@ ELSE() ENDIF() SET(_download_hash - ${RV_DEPS_OCIO_DOWNLOAD_HASH} + ${RV_DEPS_OCIO_DOWNLOAD_HASH} ) SET(_download_url @@ -48,7 +48,7 @@ IF(RV_TARGET_WINDOWS) # OpenColorIO shared library has the same name on Release and Debug. SET(_ocio_win_sharedlibname - "OpenColorIO_${RV_DEPS_OCIO_VERSION_SHORT}.dll" + "OpenColorIO_${RV_DEPS_OCIO_VERSION_SHORT}.dll" ) SET(_ocio_win_sharedlib_path @@ -99,7 +99,7 @@ ENDIF() IF(RV_VFX_PLATFORM STRGREATER_EQUAL "CY2024") SET(_pyocio_lib_dir - "${_pyocio_lib_dir}/PyOpenColorIO" + "${_pyocio_lib_dir}/PyOpenColorIO" ) ENDIF() @@ -119,14 +119,16 @@ LIST(APPEND _configure_options "-DOCIO_BUILD_TESTS=OFF") LIST(APPEND _configure_options "-DOCIO_BUILD_GPU_TESTS=OFF") LIST(APPEND _configure_options "-DOCIO_BUILD_PYTHON=ON") # This build PyOpenColorIO -# SIMD CPU performance optimizations -# OCIO 2.2.1 only supports SSE -# OCIO 2.3.X can utilize SSE/AVX (Intel) and ARM NEON (Apple M chips) SIMD instructions. +# SIMD CPU performance optimizations OCIO 2.2.1 only supports SSE OCIO 2.3.X can utilize SSE/AVX (Intel) and ARM NEON (Apple M chips) SIMD instructions. IF(RV_VFX_CY2023) - SET(_ocio_simd_options_str "-DOCIO_USE_SSE=ON") -ELSEIF( RV_VFX_PLATFORM STRGREATER_EQUAL "CY2024" ) - SET(_ocio_simd_options_str "-DOCIO_USE_SIMD=ON") -LIST(APPEND _configure_options "${_ocio_simd_options_str}") + SET(_ocio_simd_options_str + "-DOCIO_USE_SSE=ON" + ) +ELSEIF(RV_VFX_PLATFORM STRGREATER_EQUAL "CY2024") + SET(_ocio_simd_options_str + "-DOCIO_USE_SIMD=ON" + ) + LIST(APPEND _configure_options "${_ocio_simd_options_str}") ENDIF() # Ref.: https://cmake.org/cmake/help/latest/module/FindPython.html#hints @@ -186,11 +188,9 @@ ELSE() # Windows "" ) STRING(REPLACE "." "" PYTHON_VERSION_SHORT_NO_DOT ${RV_DEPS_PYTHON_VERSION_SHORT}) - - # Windows only. - # Because of an issue in Debug with minizip-ng finding ZLIB at two locations, - # ZLIB_LIBRARY and ZLIB_INCLUDE_DIR is used for both Release and Debug. - # ZLIB_ROOT is not enough to fix the issue. + + # Windows only. Because of an issue in Debug with minizip-ng finding ZLIB at two locations, ZLIB_LIBRARY and ZLIB_INCLUDE_DIR is used for both Release and + # Debug. ZLIB_ROOT is not enough to fix the issue. GET_TARGET_PROPERTY(_zlib_library ZLIB::ZLIB IMPORTED_IMPLIB) GET_TARGET_PROPERTY(_zlib_include_dir ZLIB::ZLIB INTERFACE_INCLUDE_DIRECTORIES) @@ -208,10 +208,9 @@ ELSE() # Windows "-DImath_DIR=${RV_DEPS_IMATH_ROOT_DIR}/lib/cmake/Imath" "-DPython_ROOT=${RV_DEPS_BASE_DIR}/RV_DEPS_PYTHON3/install" # Mandatory param: OCIO CMake code finds Python. - "-DPython_LIBRARY=${RV_DEPS_BASE_DIR}/RV_DEPS_PYTHON3/install/bin/python${PYTHON_VERSION_SHORT_NO_DOT}.lib" # with this param - # DRV_Python_LIBRARIES: - # A Patch RV created for PyOpenColorIO inside OCIO: Hardcode to Release since FindPython.cmake will find the Debug lib, - # which we don't want and doesn't build. + "-DPython_LIBRARY=${RV_DEPS_BASE_DIR}/RV_DEPS_PYTHON3/install/bin/python${PYTHON_VERSION_SHORT_NO_DOT}.lib" # with this param + # DRV_Python_LIBRARIES: A Patch RV created for PyOpenColorIO inside OCIO: Hardcode to Release since FindPython.cmake will find the Debug lib, which we don't + # want and doesn't build. "-DRV_Python_LIBRARIES=${RV_DEPS_BASE_DIR}/RV_DEPS_PYTHON3/install/bin/python${PYTHON_VERSION_SHORT_NO_DOT}.lib" "-DPython_INCLUDE_DIR=${RV_DEPS_BASE_DIR}/RV_DEPS_PYTHON3/install/include" "-DOCIO_PYTHON_VERSION=${RV_DEPS_PYTHON_VERSION_SHORT}" @@ -253,8 +252,7 @@ ELSE() # Windows BINARY_DIR ${_build_dir} INSTALL_DIR ${_install_dir} DEPENDS Boost::headers RV_DEPS_PYTHON3 Imath::Imath ZLIB::ZLIB EXPAT::EXPAT - PATCH_COMMAND - python3 ${_pyopencolorio_patch_script_path} ${_pyopencolorio_cmakelists_path} + PATCH_COMMAND python3 ${_pyopencolorio_patch_script_path} ${_pyopencolorio_cmakelists_path} CONFIGURE_COMMAND ${CMAKE_COMMAND} ${_configure_options} BUILD_COMMAND ${CMAKE_COMMAND} ${_ocio_build_options} INSTALL_COMMAND ${_cmake_install_command} @@ -265,9 +263,13 @@ ELSE() # Windows ) ENDIF() -SET(_ocio_stage_plugins_python_dir "${RV_STAGE_PLUGINS_PYTHON_DIR}") -IF( RV_VFX_PLATFORM STRGREATER_EQUAL "CY2024" ) - SET(_ocio_stage_plugins_python_dir "${_ocio_stage_plugins_python_dir}/PyOpenColorIO") +SET(_ocio_stage_plugins_python_dir + "${RV_STAGE_PLUGINS_PYTHON_DIR}" +) +IF(RV_VFX_PLATFORM STRGREATER_EQUAL "CY2024") + SET(_ocio_stage_plugins_python_dir + "${_ocio_stage_plugins_python_dir}/PyOpenColorIO" + ) ENDIF() IF(RV_VFX_CY2023) @@ -278,7 +280,7 @@ IF(RV_VFX_CY2023) COMMENT "Copying PyOpenColorIO lib into '${_ocio_stage_plugins_python_dir}'." COMMAND ${CMAKE_COMMAND} -E copy ${_pyocio_lib} ${_ocio_stage_plugins_python_dir} ) -ELSEIF( RV_VFX_PLATFORM STRGREATER_EQUAL "CY2024" ) +ELSEIF(RV_VFX_PLATFORM STRGREATER_EQUAL "CY2024") # All platform CY2024 and above ADD_CUSTOM_COMMAND( TARGET ${_target} @@ -298,9 +300,13 @@ ADD_CUSTOM_COMMAND( ) IF(RV_TARGET_WINDOWS) - SET(_rv_stage_lib_site_package_dir "${RV_STAGE_LIB_DIR}/site-packages") - IF( RV_VFX_PLATFORM STRGREATER_EQUAL "CY2024" ) - SET(_rv_stage_lib_site_package_dir "${_rv_stage_lib_site_package_dir}/PyOpenColorIO") + SET(_rv_stage_lib_site_package_dir + "${RV_STAGE_LIB_DIR}/site-packages" + ) + IF(RV_VFX_PLATFORM STRGREATER_EQUAL "CY2024") + SET(_rv_stage_lib_site_package_dir + "${_rv_stage_lib_site_package_dir}/PyOpenColorIO" + ) ENDIF() # Windows only. @@ -309,10 +315,9 @@ IF(RV_TARGET_WINDOWS) POST_BUILD # Copy OCIO shared library to the stage python plugins directory. COMMAND ${CMAKE_COMMAND} -E copy ${_ocio_win_sharedlib_path} ${_ocio_stage_plugins_python_dir} - ) + ) - # Windows only. - # Debug Python on Windows search for modules with *_d suffix, but OCIO does not create a PyOpenColor_d.pyd. + # Windows only. Debug Python on Windows search for modules with *_d suffix, but OCIO does not create a PyOpenColor_d.pyd. IF(CMAKE_BUILD_TYPE MATCHES "^Debug$") ADD_CUSTOM_COMMAND( TARGET ${_target} diff --git a/cmake/dependencies/oiio.cmake b/cmake/dependencies/oiio.cmake index 79f7b7f68..8cef3c76e 100644 --- a/cmake/dependencies/oiio.cmake +++ b/cmake/dependencies/oiio.cmake @@ -39,10 +39,11 @@ SET(_oiio_utils_implibpath ${_implibpath} ) -# Strips that last group from the version number -# and stores it in _oiio_ver_major_minor -# eg. 1.2.3.4 -> 1.2.3 -string(REGEX REPLACE "^([0-9]+\\.[0-9]+\\.[0-9]+)\\..*" "\\1" _oiio_ver_major_minor ${RV_DEPS_OIIO_VERSION}) +# Strips that last group from the version number and stores it in _oiio_ver_major_minor eg. 1.2.3.4 -> 1.2.3 +STRING( + REGEX + REPLACE "^([0-9]+\\.[0-9]+\\.[0-9]+)\\..*" "\\1" _oiio_ver_major_minor ${RV_DEPS_OIIO_VERSION} +) RV_MAKE_STANDARD_LIB_NAME("OpenImageIO" "${_oiio_ver_major_minor}" "SHARED" "${RV_DEBUG_POSTFIX}") LIST(APPEND _byproducts ${_byprojects_copy}) @@ -269,4 +270,4 @@ IF(RV_TARGET_WINDOWS) ) ENDIF() -LIST(APPEND RV_DEPS_LIST oiio::utils) \ No newline at end of file +LIST(APPEND RV_DEPS_LIST oiio::utils) diff --git a/cmake/dependencies/openexr.cmake b/cmake/dependencies/openexr.cmake index 41ec21ca6..612f8e35f 100644 --- a/cmake/dependencies/openexr.cmake +++ b/cmake/dependencies/openexr.cmake @@ -7,7 +7,6 @@ INCLUDE(ProcessorCount) # require CMake 3.15+ PROCESSORCOUNT(_cpu_count) - RV_CREATE_STANDARD_DEPS_VARIABLES("RV_DEPS_OPENEXR" "${RV_DEPS_OPENEXR_VERSION}" "" "") SET(_install_dir @@ -63,7 +62,7 @@ SET(_openexr_lib ) SET(LIB_VERSION_SUFFIX - "${RV_DEPS_OPENEXR_LIB_VERSION_SUFFIX}" + "${RV_DEPS_OPENEXR_LIB_VERSION_SUFFIX}" ) IF(RV_TARGET_DARWIN) @@ -137,19 +136,20 @@ IF(RV_TARGET_WINDOWS) ENDIF() SET(_openexr_patch_file_ - "${CMAKE_CURRENT_SOURCE_DIR}/patch/${RV_DEPS_OPENEXR_PATCH_NAME}.patch" + "${CMAKE_CURRENT_SOURCE_DIR}/patch/${RV_DEPS_OPENEXR_PATCH_NAME}.patch" ) IF(EXISTS "${_openexr_patch_file_}") - SET(_patch_command + SET(_patch_command patch -p1 < ${_openexr_patch_file_} - ) - MESSAGE(STATUS "Patch command set for ${_target}: ${_patch_command}") + ) + MESSAGE(STATUS "Patch command set for ${_target}: ${_patch_command}") ELSE() - # If it does not exist, set the command to an empty string. - # ExternalProject_Add will skip the patch step if the command is empty. - SET(_patch_command "") - MESSAGE(STATUS "ERROR Patch file not found, skipping patch for ${_target}: ${_patch_file}") + # If it does not exist, set the command to an empty string. ExternalProject_Add will skip the patch step if the command is empty. + SET(_patch_command + "" + ) + MESSAGE(STATUS "ERROR Patch file not found, skipping patch for ${_target}: ${_patch_file}") ENDIF() LIST(APPEND _configure_options "-DCMAKE_PREFIX_PATH=${RV_DEPS_IMATH_CMAKE_DIR}") @@ -163,8 +163,8 @@ ENDIF() # OpenEXR tools are not needed. LIST(APPEND _configure_options "-DOPENEXR_BUILD_TOOLS=OFF") -# Disable OpenEXR's automatic rpath setup to avoid conflicts with RV's rpath management -# OpenEXR 3.3+ automatically adds @loader_path/../lib which conflicts with our install scripts +# Disable OpenEXR's automatic rpath setup to avoid conflicts with RV's rpath management OpenEXR 3.3+ automatically adds @loader_path/../lib which conflicts with +# our install scripts LIST(APPEND _configure_options "-DCMAKE_INSTALL_RPATH=") EXTERNALPROJECT_ADD( diff --git a/cmake/dependencies/openjpeg.cmake b/cmake/dependencies/openjpeg.cmake index 5c9698e7c..277b72986 100644 --- a/cmake/dependencies/openjpeg.cmake +++ b/cmake/dependencies/openjpeg.cmake @@ -37,12 +37,10 @@ ELSE() RV_MAKE_STANDARD_LIB_NAME("openjp2" "${RV_DEPS_OPENJPEG_VERSION}" "SHARED" "") ENDIF() - # The '_configure_options' list gets reset and initialized in 'RV_CREATE_STANDARD_DEPS_VARIABLES' -# Do not build the executables (OpenJPEG calls them "codec executables"). -# BUILD_THIRDPARTY options is valid only if BUILD_CODEC=ON. -# PNG, TIFF and ZLIB are not needed anymore because they are used for the executables only. +# Do not build the executables (OpenJPEG calls them "codec executables"). BUILD_THIRDPARTY options is valid only if BUILD_CODEC=ON. PNG, TIFF and ZLIB are not +# needed anymore because they are used for the executables only. LIST(APPEND _configure_options "-DBUILD_CODEC=OFF") EXTERNALPROJECT_ADD( diff --git a/cmake/dependencies/openjph.cmake b/cmake/dependencies/openjph.cmake index 501122770..b9e6f55fa 100644 --- a/cmake/dependencies/openjph.cmake +++ b/cmake/dependencies/openjph.cmake @@ -1,5 +1,4 @@ # -# # SPDX-License-Identifier: Apache-2.0 # @@ -32,22 +31,20 @@ SET(_download_hash IF(RV_TARGET_WINDOWS) RV_MAKE_STANDARD_LIB_NAME("openjph.${_version_major}.${_version_minor}" "${RV_DEPS_OPENJPH_VERSION}" "SHARED" "") SET(_libname - "openjph.${_version_major}.${_version_minor}.lib" - ) - SET(_implibpath - ${_lib_dir}/${_libname} - ) + "openjph.${_version_major}.${_version_minor}.lib" + ) + SET(_implibpath + ${_lib_dir}/${_libname} + ) ELSE() RV_MAKE_STANDARD_LIB_NAME("openjph" "${RV_DEPS_OPENJPH_VERSION}" "SHARED" "") ENDIF() - MESSAGE("****OPENJPH RV_MAKE_STANDARD_LIB_NAME IMPLIB _implibpath:${_implibpath} _implibname:${_implibname} _libname:${_libname} _libpath:${_libpath}") - +MESSAGE("****OPENJPH RV_MAKE_STANDARD_LIB_NAME IMPLIB _implibpath:${_implibpath} _implibname:${_implibname} _libname:${_libname} _libpath:${_libpath}") # The '_configure_options' list gets reset and initialized in 'RV_CREATE_STANDARD_DEPS_VARIABLES' -# Do not build the executables (Openjph calls them "codec executables"). -# BUILD_THIRDPARTY options is valid only if BUILD_CODEC=ON. -# PNG, TIFF and ZLIB are not needed anymore because they are used for the executables only. +# Do not build the executables (Openjph calls them "codec executables"). BUILD_THIRDPARTY options is valid only if BUILD_CODEC=ON. PNG, TIFF and ZLIB are not +# needed anymore because they are used for the executables only. LIST(APPEND _configure_options "-DBUILD_CODEC=OFF") EXTERNALPROJECT_ADD( @@ -90,9 +87,8 @@ IF(NOT RV_TARGET_WINDOWS) ) ELSE() MESSAGE("****OPENJPH IMPORTEDLOCATION ${_implibpath} IMPLIB ${_implibpath} ${_libname} ${_libpath}") - # An import library (.lib) file is often used to resolve references to - # functions and variables in a DLL, enabling the linker to generate code - # for loading the DLL and calling its functions at runtime. + # An import library (.lib) file is often used to resolve references to functions and variables in a DLL, enabling the linker to generate code for loading the + # DLL and calling its functions at runtime. SET_PROPERTY( TARGET OpenJph::OpenJph PROPERTY IMPORTED_LOCATION "${_libpath}" diff --git a/cmake/dependencies/openssl.cmake b/cmake/dependencies/openssl.cmake index 13c4a8b4f..28522b8df 100644 --- a/cmake/dependencies/openssl.cmake +++ b/cmake/dependencies/openssl.cmake @@ -7,8 +7,8 @@ SET(_target "RV_DEPS_OPENSSL" ) -SET( _version - ${RV_DEPS_OPENSSL_VERSION} +SET(_version + ${RV_DEPS_OPENSSL_VERSION} ) IF(RV_TARGET_IS_RHEL8 @@ -90,15 +90,17 @@ ELSE() IF(${_version} STREQUAL "1.1.1u") SET(_download_url - "https://github.com/openssl/openssl/releases/download/OpenSSL_${_version_underscored}/openssl-${_version}.tar.gz" + "https://github.com/openssl/openssl/releases/download/OpenSSL_${_version_underscored}/openssl-${_version}.tar.gz" ) ELSE() SET(_download_url - "https://github.com/openssl/openssl/releases/download/openssl-${_version}/openssl-${_version}.tar.gz" + "https://github.com/openssl/openssl/releases/download/openssl-${_version}/openssl-${_version}.tar.gz" ) ENDIF() - SET(_download_hash ${RV_DEPS_OPENSSL_HASH}) + SET(_download_hash + ${RV_DEPS_OPENSSL_HASH} + ) SET(_make_command_script "${PROJECT_SOURCE_DIR}/src/build/make_openssl.py" @@ -145,8 +147,12 @@ ELSE() # Ref: https://github.com/openssl/openssl/blob/398011848468c7e8e481b295f7904afc30934217/INSTALL.md?plain=1#L1847-L1858 - SET(_dot_version ${RV_DEPS_OPENSSL_VERSION_DOT}) - SET(_underscore_version ${RV_DEPS_OPENSSL_VERSION_UNDERSCORE}) + SET(_dot_version + ${RV_DEPS_OPENSSL_VERSION_DOT} + ) + SET(_underscore_version + ${RV_DEPS_OPENSSL_VERSION_UNDERSCORE} + ) IF(RV_TARGET_LINUX) SET(_crypto_lib_name diff --git a/cmake/dependencies/pcre2.cmake b/cmake/dependencies/pcre2.cmake index 0bc08c2a2..774970324 100644 --- a/cmake/dependencies/pcre2.cmake +++ b/cmake/dependencies/pcre2.cmake @@ -1,152 +1,155 @@ -# -# Copyright (C) 2024 Autodesk, Inc. All Rights Reserved. -# -# SPDX-License-Identifier: Apache-2.0 -# - -INCLUDE(ProcessorCount) # require CMake 3.15+ -PROCESSORCOUNT(_cpu_count) - -RV_CREATE_STANDARD_DEPS_VARIABLES("RV_DEPS_PCRE2" "pcre2-${RV_DEPS_PCRE2_VERSION}" "make" "") -RV_SHOW_STANDARD_DEPS_VARIABLES() - -SET(_download_url - "https://github.com/PCRE2Project/pcre2/archive/refs/tags/${_version}.zip" -) - -SET(_download_hash - ${RV_DEPS_PCRE2_DOWNLOAD_HASH} -) - -SET(_install_dir - ${RV_DEPS_BASE_DIR}/${_target}/install -) - -# PCRE is not used for Linux and MacOS (Boost regex is used) in the current code. -IF(RV_TARGET_WINDOWS) - SET(_pcre2_libname - libpcre2-8-0${CMAKE_SHARED_LIBRARY_SUFFIX} - ) - SET(_pcre2_libname_posix - libpcre2-posix-3${CMAKE_SHARED_LIBRARY_SUFFIX} - ) - - SET(_pcre2_implibname - libpcre2-8.dll.a - ) - SET(_pcre2_implibname_posix - libpcre2-posix.dll.a - ) - - SET(_pcre2_libpath - ${_bin_dir}/${_pcre2_libname} - ) - SET(_pcre2_libpath_posix - ${_bin_dir}/${_pcre2_libname_posix} - ) - - SET(_pcre2_implibpath - ${_lib_dir}/${_pcre2_implibname} - ) - SET(_pcre2_implibpath_posix - ${_lib_dir}/${_pcre2_implibname_posix} - ) -ENDIF() - -SET(_pcre2_include_dir - ${_install_dir}/include -) - -SET(_pcre2_configure_command - sh ./configure -) - -SET(_pcre2_autogen_command - sh ./autogen.sh -) - -LIST(APPEND _pcre2_configure_args "--prefix=${_install_dir}") -# Build as shared library -LIST(APPEND _pcre2_configure_args "--disable-static") -LIST(APPEND _pcre2_configure_args "--disable-pcre2grep-libbz2") -LIST(APPEND _pcre2_configure_args "--disable-pcre2grep-libz") - -IF(CMAKE_BUILD_TYPE MATCHES "^Debug$") - LIST(APPEND _pcre2_configure_args "--enable-debug") -ENDIF() - -EXTERNALPROJECT_ADD( - ${_target} - URL ${_download_url} - URL_MD5 ${_download_hash} - DOWNLOAD_NAME ${_target}_${_version}.zip - DOWNLOAD_DIR ${RV_DEPS_DOWNLOAD_DIR} - DOWNLOAD_EXTRACT_TIMESTAMP TRUE - SOURCE_DIR ${_source_dir} - INSTALL_DIR ${_install_dir} - DEPENDS ZLIB::ZLIB - CONFIGURE_COMMAND ${_pcre2_autogen_command} && ${_pcre2_configure_command} ${_pcre2_configure_args} - BUILD_COMMAND make -j${_cpu_count} - BUILD_IN_SOURCE TRUE - BUILD_ALWAYS FALSE - BUILD_BYPRODUCTS ${_pcre2_libname} ${_pcre2_libname_posix} ${_pcre2_implibname} ${_pcre2_implibname_posix} - USES_TERMINAL_BUILD TRUE -) - -# PCRE is not used for Linux and MacOS (Boost regex is used) in the current code. -ADD_CUSTOM_COMMAND( - TARGET ${_target} - POST_BUILD - COMMENT "Installing ${_target}'s shared library into ${RV_STAGE_BIN_DIR}" - # Copy library files manually since there are tools that are not needed in the bin folder. - COMMAND ${CMAKE_COMMAND} -E copy ${_pcre2_libpath} ${_pcre2_libpath_posix} -t ${RV_STAGE_BIN_DIR} -) - -ADD_CUSTOM_TARGET( - ${_target}-stage-target ALL - DEPENDS ${RV_STAGE_BIN_DIR}/${_pcre2_libname} ${RV_STAGE_BIN_DIR}/${_pcre2_libname_posix} -) - -ADD_DEPENDENCIES(dependencies ${_target}-stage-target) - -ADD_LIBRARY(pcre2-8 SHARED IMPORTED GLOBAL) -ADD_LIBRARY(pcre2-posix SHARED IMPORTED GLOBAL) - -ADD_DEPENDENCIES(pcre2-8 ${_target}) -ADD_DEPENDENCIES(pcre2-posix ${_target}) - -# Setup includes -SET(_pcre2_include_dir - ${_install_dir}/include -) -FILE(MAKE_DIRECTORY ${_pcre2_include_dir}) - -# Setup pcre2 8-bits target -SET_TARGET_PROPERTIES( - pcre2-8 PROPERTIES - IMPORTED_LOCATION ${_pcre2_libpath} - IMPORTED_IMPLIB ${_pcre2_implibpath} -) -TARGET_INCLUDE_DIRECTORIES( - pcre2-8 - INTERFACE ${_pcre2_include_dir} -) -target_compile_definitions(pcre2-8 INTERFACE PCRE2_CODE_UNIT_WIDTH=8) - -# Setup pcre2-posix target -SET_TARGET_PROPERTIES( - pcre2-posix PROPERTIES - IMPORTED_LOCATION ${_pcre2_libpath_posix} - IMPORTED_IMPLIB ${_pcre2_implibpath_posix} -) -TARGET_INCLUDE_DIRECTORIES( - pcre2-posix - INTERFACE ${_pcre2_include_dir} -) - -LIST(APPEND RV_DEPS_LIST pcre2-8 pcre2-posix) - -SET(RV_DEPS_PCRE2_VERSION - ${_version} - CACHE INTERNAL "" FORCE -) \ No newline at end of file +# +# Copyright (C) 2024 Autodesk, Inc. All Rights Reserved. +# +# SPDX-License-Identifier: Apache-2.0 +# + +INCLUDE(ProcessorCount) # require CMake 3.15+ +PROCESSORCOUNT(_cpu_count) + +RV_CREATE_STANDARD_DEPS_VARIABLES("RV_DEPS_PCRE2" "pcre2-${RV_DEPS_PCRE2_VERSION}" "make" "") +RV_SHOW_STANDARD_DEPS_VARIABLES() + +SET(_download_url + "https://github.com/PCRE2Project/pcre2/archive/refs/tags/${_version}.zip" +) + +SET(_download_hash + ${RV_DEPS_PCRE2_DOWNLOAD_HASH} +) + +SET(_install_dir + ${RV_DEPS_BASE_DIR}/${_target}/install +) + +# PCRE is not used for Linux and MacOS (Boost regex is used) in the current code. +IF(RV_TARGET_WINDOWS) + SET(_pcre2_libname + libpcre2-8-0${CMAKE_SHARED_LIBRARY_SUFFIX} + ) + SET(_pcre2_libname_posix + libpcre2-posix-3${CMAKE_SHARED_LIBRARY_SUFFIX} + ) + + SET(_pcre2_implibname + libpcre2-8.dll.a + ) + SET(_pcre2_implibname_posix + libpcre2-posix.dll.a + ) + + SET(_pcre2_libpath + ${_bin_dir}/${_pcre2_libname} + ) + SET(_pcre2_libpath_posix + ${_bin_dir}/${_pcre2_libname_posix} + ) + + SET(_pcre2_implibpath + ${_lib_dir}/${_pcre2_implibname} + ) + SET(_pcre2_implibpath_posix + ${_lib_dir}/${_pcre2_implibname_posix} + ) +ENDIF() + +SET(_pcre2_include_dir + ${_install_dir}/include +) + +SET(_pcre2_configure_command + sh ./configure +) + +SET(_pcre2_autogen_command + sh ./autogen.sh +) + +LIST(APPEND _pcre2_configure_args "--prefix=${_install_dir}") +# Build as shared library +LIST(APPEND _pcre2_configure_args "--disable-static") +LIST(APPEND _pcre2_configure_args "--disable-pcre2grep-libbz2") +LIST(APPEND _pcre2_configure_args "--disable-pcre2grep-libz") + +IF(CMAKE_BUILD_TYPE MATCHES "^Debug$") + LIST(APPEND _pcre2_configure_args "--enable-debug") +ENDIF() + +EXTERNALPROJECT_ADD( + ${_target} + URL ${_download_url} + URL_MD5 ${_download_hash} + DOWNLOAD_NAME ${_target}_${_version}.zip + DOWNLOAD_DIR ${RV_DEPS_DOWNLOAD_DIR} + DOWNLOAD_EXTRACT_TIMESTAMP TRUE + SOURCE_DIR ${_source_dir} + INSTALL_DIR ${_install_dir} + DEPENDS ZLIB::ZLIB + CONFIGURE_COMMAND ${_pcre2_autogen_command} && ${_pcre2_configure_command} ${_pcre2_configure_args} + BUILD_COMMAND make -j${_cpu_count} + BUILD_IN_SOURCE TRUE + BUILD_ALWAYS FALSE + BUILD_BYPRODUCTS ${_pcre2_libname} ${_pcre2_libname_posix} ${_pcre2_implibname} ${_pcre2_implibname_posix} + USES_TERMINAL_BUILD TRUE +) + +# PCRE is not used for Linux and MacOS (Boost regex is used) in the current code. +ADD_CUSTOM_COMMAND( + TARGET ${_target} + POST_BUILD + COMMENT "Installing ${_target}'s shared library into ${RV_STAGE_BIN_DIR}" + # Copy library files manually since there are tools that are not needed in the bin folder. + COMMAND ${CMAKE_COMMAND} -E copy ${_pcre2_libpath} ${_pcre2_libpath_posix} -t ${RV_STAGE_BIN_DIR} +) + +ADD_CUSTOM_TARGET( + ${_target}-stage-target ALL + DEPENDS ${RV_STAGE_BIN_DIR}/${_pcre2_libname} ${RV_STAGE_BIN_DIR}/${_pcre2_libname_posix} +) + +ADD_DEPENDENCIES(dependencies ${_target}-stage-target) + +ADD_LIBRARY(pcre2-8 SHARED IMPORTED GLOBAL) +ADD_LIBRARY(pcre2-posix SHARED IMPORTED GLOBAL) + +ADD_DEPENDENCIES(pcre2-8 ${_target}) +ADD_DEPENDENCIES(pcre2-posix ${_target}) + +# Setup includes +SET(_pcre2_include_dir + ${_install_dir}/include +) +FILE(MAKE_DIRECTORY ${_pcre2_include_dir}) + +# Setup pcre2 8-bits target +SET_TARGET_PROPERTIES( + pcre2-8 + PROPERTIES IMPORTED_LOCATION ${_pcre2_libpath} + IMPORTED_IMPLIB ${_pcre2_implibpath} +) +TARGET_INCLUDE_DIRECTORIES( + pcre2-8 + INTERFACE ${_pcre2_include_dir} +) +TARGET_COMPILE_DEFINITIONS( + pcre2-8 + INTERFACE PCRE2_CODE_UNIT_WIDTH=8 +) + +# Setup pcre2-posix target +SET_TARGET_PROPERTIES( + pcre2-posix + PROPERTIES IMPORTED_LOCATION ${_pcre2_libpath_posix} + IMPORTED_IMPLIB ${_pcre2_implibpath_posix} +) +TARGET_INCLUDE_DIRECTORIES( + pcre2-posix + INTERFACE ${_pcre2_include_dir} +) + +LIST(APPEND RV_DEPS_LIST pcre2-8 pcre2-posix) + +SET(RV_DEPS_PCRE2_VERSION + ${_version} + CACHE INTERNAL "" FORCE +) diff --git a/cmake/dependencies/pyimgui.cmake b/cmake/dependencies/pyimgui.cmake index 56c763283..7d63cfd02 100644 --- a/cmake/dependencies/pyimgui.cmake +++ b/cmake/dependencies/pyimgui.cmake @@ -20,12 +20,11 @@ LIST(APPEND _configure_options "-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTU LIST(APPEND _configure_options "-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}") # Windows Release mode workaround - testing minimal working set -IF(RV_TARGET_WINDOWS AND CMAKE_BUILD_TYPE STREQUAL "Release") - # /O2 - Keep speed optimization - # /GL- - Disable whole program optimization (prevents hangs) - # /Ob0 - Disable inlining (prevents template hang) - # /bigobj - Allow large object files (needed for nanobind) - # /DNDEBUG - Keep release mode defines +IF(RV_TARGET_WINDOWS + AND CMAKE_BUILD_TYPE STREQUAL "Release" +) + # /O2 - Keep speed optimization /GL- - Disable whole program optimization (prevents hangs) /Ob0 - Disable inlining (prevents template hang) /bigobj - Allow + # large object files (needed for nanobind) /DNDEBUG - Keep release mode defines LIST(APPEND _configure_options "-DCMAKE_CXX_FLAGS_RELEASE=/O2 /GL- /Ob0 /bigobj /DNDEBUG") LIST(APPEND _configure_options "-DCMAKE_C_FLAGS_RELEASE=/O2 /GL- /Ob0 /bigobj /DNDEBUG") MESSAGE(STATUS "PyImGui: Testing reduced Windows Release workaround flags") @@ -36,9 +35,13 @@ LIST(APPEND _configure_options "-B ${_build_dir}") # Set the correct library name - Windows needs .pyd extension for Python modules IF(RV_TARGET_WINDOWS) - SET(_libname "pyimgui.pyd") + SET(_libname + "pyimgui.pyd" + ) ELSE() - SET(_libname "pyimgui${CMAKE_SHARED_MODULE_SUFFIX}") + SET(_libname + "pyimgui${CMAKE_SHARED_MODULE_SUFFIX}" + ) ENDIF() # The built library will be at the root of the build directory. @@ -73,12 +76,13 @@ EXTERNALPROJECT_ADD( PATCH_COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/imgui/CMakeLists_PyImGUI.cmake ${CMAKE_BINARY_DIR}/RV_DEPS_IMGUI/deps/imgui-bundle/external/imgui/CMakeLists.txt && ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_CURRENT_SOURCE_DIR}/imgui/pybind_imgui_module.cpp ${CMAKE_BINARY_DIR}/RV_DEPS_IMGUI/deps/imgui-bundle/external/imgui/bindings - && ${_patch_command_for_imgui_bindings} + ${CMAKE_CURRENT_SOURCE_DIR}/imgui/pybind_imgui_module.cpp ${CMAKE_BINARY_DIR}/RV_DEPS_IMGUI/deps/imgui-bundle/external/imgui/bindings && + ${_patch_command_for_imgui_bindings} UPDATE_COMMAND "" - CONFIGURE_COMMAND ${CMAKE_COMMAND} ${_configure_options} -DCMAKE_PREFIX_PATH=$ENV{QT_HOME}/lib/cmake -DPython_ROOT=${RV_DEPS_BASE_DIR}/RV_DEPS_PYTHON3/install - -Dimgui_INCLUDE_DIRS=${_imgui_include_dirs} -Dimgui_LIBRARY=${_imgui_library_file} -Dnanobind_ROOT=${RV_DEPS_BASE_DIR}/RV_DEPS_NANOBIND/install/nanobind - -DRV_TARGET_WINDOWS=${RV_TARGET_WINDOWS} + CONFIGURE_COMMAND + ${CMAKE_COMMAND} ${_configure_options} -DCMAKE_PREFIX_PATH=$ENV{QT_HOME}/lib/cmake -DPython_ROOT=${RV_DEPS_BASE_DIR}/RV_DEPS_PYTHON3/install + -Dimgui_INCLUDE_DIRS=${_imgui_include_dirs} -Dimgui_LIBRARY=${_imgui_library_file} -Dnanobind_ROOT=${RV_DEPS_BASE_DIR}/RV_DEPS_NANOBIND/install/nanobind + -DRV_TARGET_WINDOWS=${RV_TARGET_WINDOWS} BUILD_COMMAND ${_cmake_build_command} INSTALL_COMMAND ${_cmake_install_command} BUILD_BYPRODUCTS ${_build_output_path} @@ -88,10 +92,14 @@ EXTERNALPROJECT_ADD( ) # Not using RV_COPY_LIB_BIN_FOLDERS() because we need to copy the library to a specific location. -IF (RV_TARGET_WINDOWS) - SET(_pybindings_location "${RV_STAGE_LIB_DIR}/site-packages") +IF(RV_TARGET_WINDOWS) + SET(_pybindings_location + "${RV_STAGE_LIB_DIR}/site-packages" + ) ELSE() - SET(_pybindings_location "${RV_STAGE_LIB_DIR}/${_PYTHON_LIB_DIR}") + SET(_pybindings_location + "${RV_STAGE_LIB_DIR}/${_PYTHON_LIB_DIR}" + ) ENDIF() ADD_CUSTOM_COMMAND( diff --git a/cmake/dependencies/pyimplot.cmake b/cmake/dependencies/pyimplot.cmake index fbb6bf2e8..a6f093b0e 100644 --- a/cmake/dependencies/pyimplot.cmake +++ b/cmake/dependencies/pyimplot.cmake @@ -20,12 +20,11 @@ LIST(APPEND _configure_options "-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTU LIST(APPEND _configure_options "-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}") # Windows Release mode workaround - minimal working set to prevent MSVC hangs -IF(RV_TARGET_WINDOWS AND CMAKE_BUILD_TYPE STREQUAL "Release") - # /O2 - Keep speed optimization - # /GL- - Disable whole program optimization (prevents hangs) - # /Ob0 - Disable inlining (prevents template hang) - # /bigobj - Allow large object files (needed for nanobind) - # /DNDEBUG - Keep release mode defines +IF(RV_TARGET_WINDOWS + AND CMAKE_BUILD_TYPE STREQUAL "Release" +) + # /O2 - Keep speed optimization /GL- - Disable whole program optimization (prevents hangs) /Ob0 - Disable inlining (prevents template hang) /bigobj - Allow + # large object files (needed for nanobind) /DNDEBUG - Keep release mode defines LIST(APPEND _configure_options "-DCMAKE_CXX_FLAGS_RELEASE=/O2 /GL- /Ob0 /bigobj /DNDEBUG") LIST(APPEND _configure_options "-DCMAKE_C_FLAGS_RELEASE=/O2 /GL- /Ob0 /bigobj /DNDEBUG") MESSAGE(STATUS "PyImplot: Applying Windows Release workaround flags to prevent MSVC hangs") @@ -36,9 +35,13 @@ LIST(APPEND _configure_options "-B ${_build_dir}") # Set the correct library name - Windows needs .pyd extension for Python modules IF(RV_TARGET_WINDOWS) - SET(_libname "pyimplot.pyd") + SET(_libname + "pyimplot.pyd" + ) ELSE() - SET(_libname "pyimplot${CMAKE_SHARED_MODULE_SUFFIX}") + SET(_libname + "pyimplot${CMAKE_SHARED_MODULE_SUFFIX}" + ) ENDIF() # The built library will be at the root of the build directory. @@ -72,9 +75,10 @@ EXTERNALPROJECT_ADD( ${CMAKE_CURRENT_SOURCE_DIR}/imgui/pybind_implot_module.cpp ${CMAKE_BINARY_DIR}/RV_DEPS_IMGUI/deps/imgui-bundle-pyimplot/external/implot/bindings/pybind_implot_module.cpp UPDATE_COMMAND "" - CONFIGURE_COMMAND ${CMAKE_COMMAND} ${_configure_options} -DCMAKE_PREFIX_PATH=$ENV{QT_HOME}/lib/cmake -DPython_ROOT=${RV_DEPS_BASE_DIR}/RV_DEPS_PYTHON3/install - -Dimgui_INCLUDE_DIRS=${_imgui_include_dirs} -Dimgui_LIBRARY=${_imgui_library_file} -Dnanobind_ROOT=${RV_DEPS_BASE_DIR}/RV_DEPS_NANOBIND/install/nanobind - -DRV_TARGET_WINDOWS=${RV_TARGET_WINDOWS} + CONFIGURE_COMMAND + ${CMAKE_COMMAND} ${_configure_options} -DCMAKE_PREFIX_PATH=$ENV{QT_HOME}/lib/cmake -DPython_ROOT=${RV_DEPS_BASE_DIR}/RV_DEPS_PYTHON3/install + -Dimgui_INCLUDE_DIRS=${_imgui_include_dirs} -Dimgui_LIBRARY=${_imgui_library_file} -Dnanobind_ROOT=${RV_DEPS_BASE_DIR}/RV_DEPS_NANOBIND/install/nanobind + -DRV_TARGET_WINDOWS=${RV_TARGET_WINDOWS} BUILD_COMMAND ${_cmake_build_command} INSTALL_COMMAND ${_cmake_install_command} BUILD_BYPRODUCTS ${_build_output_path} @@ -84,10 +88,14 @@ EXTERNALPROJECT_ADD( ) # Not using RV_COPY_LIB_BIN_FOLDERS() because we need to copy the library to a specific location. -IF (RV_TARGET_WINDOWS) - SET(_pybindings_location "${RV_STAGE_LIB_DIR}/site-packages") +IF(RV_TARGET_WINDOWS) + SET(_pybindings_location + "${RV_STAGE_LIB_DIR}/site-packages" + ) ELSE() - SET(_pybindings_location "${RV_STAGE_LIB_DIR}/${_PYTHON_LIB_DIR}") + SET(_pybindings_location + "${RV_STAGE_LIB_DIR}/${_PYTHON_LIB_DIR}" + ) ENDIF() ADD_CUSTOM_COMMAND( diff --git a/cmake/dependencies/python3.cmake b/cmake/dependencies/python3.cmake index 4c1d76ed2..fbd2b363a 100644 --- a/cmake/dependencies/python3.cmake +++ b/cmake/dependencies/python3.cmake @@ -233,12 +233,15 @@ ELSE() # Not WINDOWS ) ENDIF() -# Set the appropriate library for CMAKE_ARGS based on platform -# Windows needs the import library (.lib), Unix needs the shared library (.so/.dylib) +# Set the appropriate library for CMAKE_ARGS based on platform Windows needs the import library (.lib), Unix needs the shared library (.so/.dylib) IF(RV_TARGET_WINDOWS) - SET(_python3_cmake_library ${_python3_implib}) + SET(_python3_cmake_library + ${_python3_implib} + ) ELSE() - SET(_python3_cmake_library ${_python3_lib}) + SET(_python3_cmake_library + ${_python3_lib} + ) ENDIF() # Generate requirements.txt from template with the OpenTimelineIO version substituted @@ -251,28 +254,27 @@ SET(_requirements_output_file CONFIGURE_FILE(${_requirements_input_file} ${_requirements_output_file} @ONLY) -# OpenTimelineIO needs to be built from source with CMAKE_ARGS to ensure it uses -# the correct custom-built Python libraries. This is required for both old and new -# versions of pybind11, especially pybind11 v2.13.6+ which has stricter detection. -# Note: pybind11's FindPythonLibsNew.cmake uses PYTHON_LIBRARY (all caps), -# PYTHON_INCLUDE_DIR, and PYTHON_EXECUTABLE variables. -# --no-cache-dir: Don't use pip's wheel cache (prevents using wheels built for wrong Python version) +# OpenTimelineIO needs to be built from source with CMAKE_ARGS to ensure it uses the correct custom-built Python libraries. This is required for both old and +# new versions of pybind11, especially pybind11 v2.13.6+ which has stricter detection. Note: pybind11's FindPythonLibsNew.cmake uses PYTHON_LIBRARY (all caps), +# PYTHON_INCLUDE_DIR, and PYTHON_EXECUTABLE variables. --no-cache-dir: Don't use pip's wheel cache (prevents using wheels built for wrong Python version) # --force-reinstall: Reinstall packages even if already installed (ensures fresh build) -# Set OTIO_CXX_DEBUG_BUILD for all Debug builds to ensure OTIO's C++ extensions -# are built with debug symbols and proper optimization levels matching RV's build type. -# On Windows, this also ensures OTIO links against the debug Python library (python311_d.lib). +# Set OTIO_CXX_DEBUG_BUILD for all Debug builds to ensure OTIO's C++ extensions are built with debug symbols and proper optimization levels matching RV's build +# type. On Windows, this also ensures OTIO links against the debug Python library (python311_d.lib). IF(CMAKE_BUILD_TYPE MATCHES "^Debug$") - SET(_otio_debug_env "OTIO_CXX_DEBUG_BUILD=1") + SET(_otio_debug_env + "OTIO_CXX_DEBUG_BUILD=1" + ) ELSE() - SET(_otio_debug_env "") + SET(_otio_debug_env + "" + ) ENDIF() -# Using --no-binary :all: to ensure all packages with native extensions are built from source -# against our custom Python build, preventing ABI compatibility issues. +# Using --no-binary :all: to ensure all packages with native extensions are built from source against our custom Python build, preventing ABI compatibility +# issues. SET(_requirements_install_command - ${CMAKE_COMMAND} -E env - ${_otio_debug_env} + ${CMAKE_COMMAND} -E env ${_otio_debug_env} ) # Only set OPENSSL_DIR if we built OpenSSL ourselves (not for Rocky Linux 8 CY2023 which uses system OpenSSL) @@ -280,9 +282,24 @@ IF(DEFINED RV_DEPS_OPENSSL_INSTALL_DIR) LIST(APPEND _requirements_install_command "OPENSSL_DIR=${RV_DEPS_OPENSSL_INSTALL_DIR}") ENDIF() -LIST(APPEND _requirements_install_command - "CMAKE_ARGS=-DPYTHON_LIBRARY=${_python3_cmake_library} -DPYTHON_INCLUDE_DIR=${_include_dir} -DPYTHON_EXECUTABLE=${_python3_executable}" - "${_python3_executable}" -s -E -I -m pip install --upgrade --no-cache-dir --force-reinstall --no-binary :all: -r "${_requirements_output_file}" +LIST( + APPEND + _requirements_install_command + "CMAKE_ARGS=-DPYTHON_LIBRARY=${_python3_cmake_library} -DPYTHON_INCLUDE_DIR=${_include_dir} -DPYTHON_EXECUTABLE=${_python3_executable}" + "${_python3_executable}" + -s + -E + -I + -m + pip + install + --upgrade + --no-cache-dir + --force-reinstall + --no-binary + :all: + -r + "${_requirements_output_file}" ) IF(RV_TARGET_WINDOWS) @@ -383,8 +400,8 @@ ADD_CUSTOM_COMMAND( IF(RV_TARGET_WINDOWS AND CMAKE_BUILD_TYPE MATCHES "^Debug$" ) - # OCIO v2.2's pybind11 doesn't find python.lib in Debug since the name is python_d.lib. - # Also, Rust libraries (like cryptography via pyo3) look for python3.lib. + # OCIO v2.2's pybind11 doesn't find python.lib in Debug since the name is python_d.lib. Also, Rust libraries (like cryptography via pyo3) look for + # python3.lib. ADD_CUSTOM_COMMAND( TARGET ${_python3_target} POST_BUILD @@ -392,8 +409,8 @@ IF(RV_TARGET_WINDOWS COMMAND cmake -E copy_if_different ${_python3_implib} ${_python_release_libpath} COMMAND cmake -E copy_if_different ${_python3_implib} ${_python_release_in_bin_libpath} COMMAND cmake -E copy_if_different ${_lib_dir}/python${PYTHON_VERSION_MAJOR}_d.lib ${_lib_dir}/python${PYTHON_VERSION_MAJOR}.lib - COMMAND cmake -E copy_if_different ${_bin_dir}/python${PYTHON_VERSION_MAJOR}_d.lib ${_bin_dir}/python${PYTHON_VERSION_MAJOR}.lib - DEPENDS ${_python3_target} ${_requirements_output_file} ${_requirements_input_file} + COMMAND cmake -E copy_if_different ${_bin_dir}/python${PYTHON_VERSION_MAJOR}_d.lib ${_bin_dir}/python${PYTHON_VERSION_MAJOR}.lib DEPENDS ${_python3_target} + ${_requirements_output_file} ${_requirements_input_file} ) ENDIF() diff --git a/cmake/dependencies/qt5.cmake b/cmake/dependencies/qt5.cmake index 66870c8db..84ac489a1 100644 --- a/cmake/dependencies/qt5.cmake +++ b/cmake/dependencies/qt5.cmake @@ -109,7 +109,11 @@ IF(RV_TARGET_DARWIN) lib_to_copy ${libs_to_copy} ) - IF(lib_to_copy MATCHES "framework" AND NOT (CMAKE_BUILD_TYPE STREQUAL "Release" AND lib_to_copy MATCHES "\\.dSYM$")) + IF(lib_to_copy MATCHES "framework" + AND NOT + (CMAKE_BUILD_TYPE STREQUAL "Release" + AND lib_to_copy MATCHES "\\.dSYM$") + ) FILE( COPY ${_qt5_lib_dir}/${lib_to_copy} DESTINATION ${RV_STAGE_FRAMEWORKS_DIR} diff --git a/cmake/dependencies/qt6.cmake b/cmake/dependencies/qt6.cmake index da1ca1340..961b53ee7 100644 --- a/cmake/dependencies/qt6.cmake +++ b/cmake/dependencies/qt6.cmake @@ -49,67 +49,94 @@ FOREACH( ENDIF() ENDFOREACH() -# For newer versions of Qt on macOS, QtWebEngine may not be part of the base installation. -# This logic checks for its existence and, if missing for specific Qt versions, downloads and extracts it. -string(REGEX MATCH "([0-9]+\.[0-9]+\.[0-9]+)" _qt_version_from_path "${RV_DEPS_QT_LOCATION}") +# For newer versions of Qt on macOS, QtWebEngine may not be part of the base installation. This logic checks for its existence and, if missing for specific Qt +# versions, downloads and extracts it. +STRING(REGEX MATCH "([0-9]+\.[0-9]+\.[0-9]+)" _qt_version_from_path "${RV_DEPS_QT_LOCATION}") # If we are on macOS, with Qt 6.8.3, and WebEngine is missing, download it. -if(_qt_version_from_path VERSION_EQUAL "6.8.3" AND NOT EXISTS "${RV_DEPS_QT_LOCATION}/lib/cmake/Qt6WebEngineCore/Qt6WebEngineCoreConfig.cmake") - message(STATUS "QtWebEngine component for 6.8.3 not found. Attempting to download and install it.") +IF(_qt_version_from_path VERSION_EQUAL "6.8.3" + AND NOT EXISTS "${RV_DEPS_QT_LOCATION}/lib/cmake/Qt6WebEngineCore/Qt6WebEngineCoreConfig.cmake" +) + MESSAGE(STATUS "QtWebEngine component for 6.8.3 not found. Attempting to download and install it.") - # Find the 7z executable, which is required for extraction. - find_program(SEVEN_ZIP_EXECUTABLE NAMES 7z p7zip) - if(NOT SEVEN_ZIP_EXECUTABLE) - message(FATAL_ERROR "p7zip (or 7z) is required to extract the QtWebEngine module but was not found. Please install it (e.g., 'brew install p7zip').") - endif() + # Find the 7z executable, which is required for extraction. + FIND_PROGRAM( + SEVEN_ZIP_EXECUTABLE + NAMES 7z p7zip + ) + IF(NOT SEVEN_ZIP_EXECUTABLE) + MESSAGE(FATAL_ERROR "p7zip (or 7z) is required to extract the QtWebEngine module but was not found. Please install it (e.g., 'brew install p7zip').") + ENDIF() - IF (RV_TARGET_DARWIN) + IF(RV_TARGET_DARWIN) # Download the 7z archive provided by the user. - set(QT_WEBENGINE_URL "https://download.qt.io/online/qtsdkrepository/mac_x64/extensions/qtwebengine/683/clang_64/extensions.qtwebengine.683.clang_64/6.8.3-0-202503201424qtwebengine-MacOS-MacOS_14-Clang-MacOS-MacOS_14-X86_64-ARM64.7z") - set(QT_WEBENGINE_ARCHIVE "${CMAKE_BINARY_DIR}/qtwebengine-6.8.3-macos.7z") - ELSEIF(RV_TARGET_LINUX) - set(QT_WEBENGINE_URL "https://download.qt.io/online/qtsdkrepository/linux_x64/extensions/qtwebengine/683/x86_64/extensions.qtwebengine.683.linux_gcc_64/6.8.3-0-202503201424qtwebengine-Linux-RHEL_8_10-GCC-Linux-RHEL_8_10-X86_64.7z") - set(QT_WEBENGINE_ARCHIVE "${CMAKE_BINARY_DIR}/qtwebengine-6.8.3-linux.7z") - ELSEIF(RV_TARGET_WINDOWS) - set(QT_WEBENGINE_URL "https://download.qt.io/online/qtsdkrepository/windows_x86/extensions/qtwebengine/683/msvc2022_64/extensions.qtwebengine.683.win64_msvc2022_64/6.8.3-0-202503201424qtwebengine-Windows-Windows_11_23H2-MSVC2022-Windows-Windows_11_23H2-X86_64.7z") - set(QT_WEBENGINE_ARCHIVE "${CMAKE_BINARY_DIR}/qtwebengine-6.8.3-windows.7z") - ELSE() - message(FATAL_ERROR "Failed to determine platform for downloading QtWebEngine. Modify qt6.cmake to add support for this platform. Installers can be found at https://download.qt.io/online/qtsdkrepository/ under platform/extensions/qtwebengine/683/") - ENDIF() - - message(STATUS "Downloading QtWebEngine from ${QT_WEBENGINE_URL}") - file(DOWNLOAD ${QT_WEBENGINE_URL} ${QT_WEBENGINE_ARCHIVE} SHOW_PROGRESS) - - # Extract the archive into a temporary directory to handle its internal structure safely. - set(QT_WEBENGINE_TEMP_DIR "${CMAKE_BINARY_DIR}/qtwebengine_temp_extract") - if(EXISTS "${QT_WEBENGINE_TEMP_DIR}") - file(REMOVE_RECURSE "${QT_WEBENGINE_TEMP_DIR}") - endif() - file(MAKE_DIRECTORY "${QT_WEBENGINE_TEMP_DIR}") - - message(STATUS "Extracting QtWebEngine to temporary directory: ${QT_WEBENGINE_TEMP_DIR}") - execute_process( - COMMAND ${SEVEN_ZIP_EXECUTABLE} x ${QT_WEBENGINE_ARCHIVE} -o${QT_WEBENGINE_TEMP_DIR} - RESULT_VARIABLE extract_result - OUTPUT_QUIET - ERROR_QUIET + SET(QT_WEBENGINE_URL + "https://download.qt.io/online/qtsdkrepository/mac_x64/extensions/qtwebengine/683/clang_64/extensions.qtwebengine.683.clang_64/6.8.3-0-202503201424qtwebengine-MacOS-MacOS_14-Clang-MacOS-MacOS_14-X86_64-ARM64.7z" + ) + SET(QT_WEBENGINE_ARCHIVE + "${CMAKE_BINARY_DIR}/qtwebengine-6.8.3-macos.7z" + ) + ELSEIF(RV_TARGET_LINUX) + SET(QT_WEBENGINE_URL + "https://download.qt.io/online/qtsdkrepository/linux_x64/extensions/qtwebengine/683/x86_64/extensions.qtwebengine.683.linux_gcc_64/6.8.3-0-202503201424qtwebengine-Linux-RHEL_8_10-GCC-Linux-RHEL_8_10-X86_64.7z" ) + SET(QT_WEBENGINE_ARCHIVE + "${CMAKE_BINARY_DIR}/qtwebengine-6.8.3-linux.7z" + ) + ELSEIF(RV_TARGET_WINDOWS) + SET(QT_WEBENGINE_URL + "https://download.qt.io/online/qtsdkrepository/windows_x86/extensions/qtwebengine/683/msvc2022_64/extensions.qtwebengine.683.win64_msvc2022_64/6.8.3-0-202503201424qtwebengine-Windows-Windows_11_23H2-MSVC2022-Windows-Windows_11_23H2-X86_64.7z" + ) + SET(QT_WEBENGINE_ARCHIVE + "${CMAKE_BINARY_DIR}/qtwebengine-6.8.3-windows.7z" + ) + ELSE() + MESSAGE( + FATAL_ERROR + "Failed to determine platform for downloading QtWebEngine. Modify qt6.cmake to add support for this platform. Installers can be found at https://download.qt.io/online/qtsdkrepository/ under platform/extensions/qtwebengine/683/" + ) + ENDIF() - if(NOT extract_result EQUAL 0) - message(FATAL_ERROR "Failed to extract QtWebEngine archive to temp directory. Result: ${extract_result}.") - endif() - - # The archive contains Qt component directories (lib, qml, etc.) directly. - # Copy the entire contents of the temporary directory into the Qt installation, merging the folders. - message(STATUS "Copying extracted files from ${QT_WEBENGINE_TEMP_DIR} to ${RV_DEPS_QT_LOCATION}") - file(COPY "${QT_WEBENGINE_TEMP_DIR}/" DESTINATION "${RV_DEPS_QT_LOCATION}") - - # Clean up the temporary directory and downloaded archive - file(REMOVE_RECURSE "${QT_WEBENGINE_TEMP_DIR}") - file(REMOVE "${QT_WEBENGINE_ARCHIVE}") - - message(STATUS "QtWebEngine for 6.8.3 installed successfully.") -endif() + MESSAGE(STATUS "Downloading QtWebEngine from ${QT_WEBENGINE_URL}") + FILE( + DOWNLOAD ${QT_WEBENGINE_URL} ${QT_WEBENGINE_ARCHIVE} + SHOW_PROGRESS + ) + + # Extract the archive into a temporary directory to handle its internal structure safely. + SET(QT_WEBENGINE_TEMP_DIR + "${CMAKE_BINARY_DIR}/qtwebengine_temp_extract" + ) + IF(EXISTS "${QT_WEBENGINE_TEMP_DIR}") + FILE(REMOVE_RECURSE "${QT_WEBENGINE_TEMP_DIR}") + ENDIF() + FILE(MAKE_DIRECTORY "${QT_WEBENGINE_TEMP_DIR}") + + MESSAGE(STATUS "Extracting QtWebEngine to temporary directory: ${QT_WEBENGINE_TEMP_DIR}") + EXECUTE_PROCESS( + COMMAND ${SEVEN_ZIP_EXECUTABLE} x ${QT_WEBENGINE_ARCHIVE} -o${QT_WEBENGINE_TEMP_DIR} + RESULT_VARIABLE extract_result + OUTPUT_QUIET ERROR_QUIET + ) + + IF(NOT extract_result EQUAL 0) + MESSAGE(FATAL_ERROR "Failed to extract QtWebEngine archive to temp directory. Result: ${extract_result}.") + ENDIF() + + # The archive contains Qt component directories (lib, qml, etc.) directly. Copy the entire contents of the temporary directory into the Qt installation, + # merging the folders. + MESSAGE(STATUS "Copying extracted files from ${QT_WEBENGINE_TEMP_DIR} to ${RV_DEPS_QT_LOCATION}") + FILE( + COPY "${QT_WEBENGINE_TEMP_DIR}/" + DESTINATION "${RV_DEPS_QT_LOCATION}" + ) + + # Clean up the temporary directory and downloaded archive + FILE(REMOVE_RECURSE "${QT_WEBENGINE_TEMP_DIR}") + FILE(REMOVE "${QT_WEBENGINE_ARCHIVE}") + + MESSAGE(STATUS "QtWebEngine for 6.8.3 installed successfully.") +ENDIF() # Testing if everything is alright. In Qt6, QtWebEngine has been split into Qt6WebEngineCore and Qt6WebEngineWidgets. FIND_PACKAGE( @@ -174,7 +201,11 @@ IF(RV_TARGET_DARWIN) lib_to_copy ${libs_to_copy} ) - IF(lib_to_copy MATCHES "framework" AND NOT (CMAKE_BUILD_TYPE STREQUAL "Release" AND lib_to_copy MATCHES "\\.dSYM$")) + IF(lib_to_copy MATCHES "framework" + AND NOT + (CMAKE_BUILD_TYPE STREQUAL "Release" + AND lib_to_copy MATCHES "\\.dSYM$") + ) FILE( COPY ${_qt5_lib_dir}/${lib_to_copy} DESTINATION ${RV_STAGE_FRAMEWORKS_DIR} diff --git a/cmake/dependencies/raw.cmake b/cmake/dependencies/raw.cmake index 571d5546d..858e0c00f 100644 --- a/cmake/dependencies/raw.cmake +++ b/cmake/dependencies/raw.cmake @@ -5,9 +5,8 @@ # # -# LibRaw official Web page: https://www.libraw.org/about -# LibRaw official sources: https://www.libraw.org/data/LibRaw-0.21.1.tar.gz -# LibRaw build from sources: https://www.libraw.org/docs/Install-LibRaw-eng.html +# LibRaw official Web page: https://www.libraw.org/about LibRaw official sources: https://www.libraw.org/data/LibRaw-0.21.1.tar.gz LibRaw build from sources: +# https://www.libraw.org/docs/Install-LibRaw-eng.html # INCLUDE(ProcessorCount) # require CMake 3.15+ @@ -30,8 +29,7 @@ SET(_download_hash "${RV_DEPS_RAW_DOWNLOAD_HASH}" ) -# LIBRAW_SHLIB_CURRENT value in libraw_version.h -# https://github.com/LibRaw/LibRaw/blob/master/libraw/libraw_version.h +# LIBRAW_SHLIB_CURRENT value in libraw_version.h https://github.com/LibRaw/LibRaw/blob/master/libraw/libraw_version.h SET(_libraw_lib_version ${RV_DEPS_RAW_VERSION_LIB} ) @@ -69,8 +67,7 @@ IF(RV_TARGET_WINDOWS) COMMENT "Installing ${_target}'s libs & files into ${_install_dir}" COMMAND ${CMAKE_COMMAND} -E copy_directory ${_base_dir}/src/lib ${_lib_dir} COMMAND ${CMAKE_COMMAND} -E copy_directory ${_base_dir}/src/libraw ${_include_dir}/libraw - # Copy only the DLL on Windows because there is no option to disable the "examples/samples" - # with Makefile.msvc. + # Copy only the DLL on Windows because there is no option to disable the "examples/samples" with Makefile.msvc. COMMAND ${CMAKE_COMMAND} -E make_directory ${_bin_dir} COMMAND ${CMAKE_COMMAND} -E copy ${_base_dir}/src/bin/${_libname} ${_bin_dir} COMMAND ${CMAKE_COMMAND} -E rm ${_lib_dir}/Makefile @@ -93,9 +90,7 @@ ELSE() ) SET(_configure_command - ${CMAKE_COMMAND} -E env LCMS2_CFLAGS='${_lcms2_flags}' - ${CMAKE_COMMAND} -E env LCMS2_LIBS='${_lcms2_libs}' - ${_configure_command} + ${CMAKE_COMMAND} -E env LCMS2_CFLAGS='${_lcms2_flags}' ${CMAKE_COMMAND} -E env LCMS2_LIBS='${_lcms2_libs}' ${_configure_command} ) EXTERNALPROJECT_ADD( diff --git a/cmake/globals/rv_globals.cmake b/cmake/globals/rv_globals.cmake index b8ba44cb4..437e4a6c3 100644 --- a/cmake/globals/rv_globals.cmake +++ b/cmake/globals/rv_globals.cmake @@ -112,9 +112,11 @@ IF(RV_TARGET_DARWIN) FILE(MAKE_DIRECTORY ${RV_STAGE_RESOURCES_ENGLISH_DIR}) MESSAGE(STATUS "RV_STAGE_RESOURCES_ENGLISH_DIR: ${RV_STAGE_RESOURCES_ENGLISH_DIR}") - # Create RVLinkLauncher Resources directory and copy icon files - SET(RVLINKLAUNCHER_RESOURCES_DIR ${RV_STAGE_ROOT_DIR}/MacOS/RVLinkLauncher.app/Contents/Resources) - FILE(MAKE_DIRECTORY ${RVLINKLAUNCHER_RESOURCES_DIR}) + # Create RVLinkLauncher Resources directory and copy icon files + SET(RVLINKLAUNCHER_RESOURCES_DIR + ${RV_STAGE_ROOT_DIR}/MacOS/RVLinkLauncher.app/Contents/Resources + ) + FILE(MAKE_DIRECTORY ${RVLINKLAUNCHER_RESOURCES_DIR}) ELSE() SET(RV_STAGE_RESOURCES_DIR ${RV_STAGE_ROOT_DIR}/resources diff --git a/cmake/install/install.cmake b/cmake/install/install.cmake index 438ea030f..9257ccde2 100644 --- a/cmake/install/install.cmake +++ b/cmake/install/install.cmake @@ -21,7 +21,9 @@ LIST(LENGTH FILES_TO_COPY FILES_TO_COPY_LENGTH) SET(CURRENT_FILE_INDEX "0" ) -SET(FILES_TO_FIX_RPATH "") +SET(FILES_TO_FIX_RPATH + "" +) FOREACH( FILE_TO_COPY @@ -55,4 +57,4 @@ FOREACH( AFTER_COPY(${CMAKE_INSTALL_PREFIX}/${FILE_TO_COPY} ${RV_APP_ROOT}/${FILE_TO_COPY} FILES_TO_FIX_RPATH) ENDFOREACH() -POST_INSTALL() \ No newline at end of file +POST_INSTALL() diff --git a/cmake/install/pre_install_darwin.cmake b/cmake/install/pre_install_darwin.cmake index f04a19220..fe22f0970 100644 --- a/cmake/install/pre_install_darwin.cmake +++ b/cmake/install/pre_install_darwin.cmake @@ -30,8 +30,7 @@ FUNCTION(before_copy_platform FILE_PATH RET_VAL) RETURN() ENDFUNCTION() -# It's really slow to try to fix the rpaths on all the files. -# This list contains extensions that are known to not be mach-o +# It's really slow to try to fix the rpaths on all the files. This list contains extensions that are known to not be mach-o SET(KNOWN_EXTENSIONS_TO_SKIP ".h" ".c" @@ -84,14 +83,17 @@ MACRO(after_copy_platform FILE_PATH FILES_TO_FIX_RPATH) ENDMACRO() MACRO(post_install_platform) - set(_output_file_to_fix_ "${RV_DEPS_BASE_DIR}/files_to_fix.txt") - FILE(WRITE ${_output_file_to_fix_} ${FILES_TO_FIX_RPATH}) + SET(_output_file_to_fix_ + "${RV_DEPS_BASE_DIR}/files_to_fix.txt" + ) + FILE( + WRITE ${_output_file_to_fix_} + ${FILES_TO_FIX_RPATH} + ) MESSAGE(STATUS "python3 ${CMAKE_CURRENT_LIST_DIR}/../../src/build/remove_absolute_rpath.py --files-list ${_output_file_to_fix_} --root ${CMAKE_SOURCE_DIR}") EXECUTE_PROCESS( - COMMAND python3 ${CMAKE_CURRENT_LIST_DIR}/../../src/build/remove_absolute_rpath.py - --files-list ${_output_file_to_fix_} - --root ${CMAKE_SOURCE_DIR} + COMMAND python3 ${CMAKE_CURRENT_LIST_DIR}/../../src/build/remove_absolute_rpath.py --files-list ${_output_file_to_fix_} --root ${CMAKE_SOURCE_DIR} COMMAND_ERROR_IS_FATAL ANY ) ENDMACRO() diff --git a/cmake/install/pre_install_linux.cmake b/cmake/install/pre_install_linux.cmake index 1d2050e9b..b6b6ab1eb 100644 --- a/cmake/install/pre_install_linux.cmake +++ b/cmake/install/pre_install_linux.cmake @@ -33,27 +33,33 @@ FUNCTION(before_copy_platform FILE_PATH RET_VAL) ENDFUNCTION() SET(STRIP_IGNORE_LIST - "csv" - "gzip" - "json" - "octet-stream" - "pdf" - "x-bytecode.python" - "x-bzip2" - "x-dosexec" - "x-font-ttf" - "x-tar" - "zip" + "csv" + "gzip" + "json" + "octet-stream" + "pdf" + "x-bytecode.python" + "x-bzip2" + "x-dosexec" + "x-font-ttf" + "x-tar" + "zip" ) FUNCTION(after_copy_platform FILE_PATH FILES_TO_FIX_RPATH) IF(CMAKE_INSTALL_CONFIG_NAME MATCHES "^Release$") - EXECUTE_PROCESS(COMMAND file --mime-type ${FILE_PATH} OUTPUT_VARIABLE FILE_CMD_OUT) + EXECUTE_PROCESS( + COMMAND file --mime-type ${FILE_PATH} + OUTPUT_VARIABLE FILE_CMD_OUT + ) IF(${FILE_CMD_OUT} MATCHES ": application\/(.+)\n") IF(NOT "${CMAKE_MATCH_1}" IN_LIST STRIP_IGNORE_LIST) - EXECUTE_PROCESS(COMMAND strip -S ${FILE_PATH} RESULT_VARIABLE STRIP_EXIT_CODE) + EXECUTE_PROCESS( + COMMAND strip -S ${FILE_PATH} + RESULT_VARIABLE STRIP_EXIT_CODE + ) IF(NOT STRIP_EXIT_CODE EQUAL 0) - MESSAGE(WARNING "Unable to strip ${FILE_PATH} with mime type application/${CMAKE_MATCH_1}. Consider adding it to the ignore list.") + MESSAGE(WARNING "Unable to strip ${FILE_PATH} with mime type application/${CMAKE_MATCH_1}. Consider adding it to the ignore list.") ENDIF() ENDIF() ENDIF() diff --git a/cmake/install/pre_install_windows.cmake b/cmake/install/pre_install_windows.cmake index c47940644..0d20c7da4 100644 --- a/cmake/install/pre_install_windows.cmake +++ b/cmake/install/pre_install_windows.cmake @@ -18,8 +18,8 @@ FUNCTION(before_copy_platform FILE_PATH RET_VAL) # Exp files contains information about symbols. Not needed for runtime. IF(FILE_PATH MATCHES "\\.exp$") SET(${RET_VAL} - "NO" - PARENT_SCOPE + "NO" + PARENT_SCOPE ) RETURN() ENDIF() @@ -27,8 +27,8 @@ FUNCTION(before_copy_platform FILE_PATH RET_VAL) # Only used by the compiler/linker. Not needed for runtime. IF(FILE_PATH MATCHES "\\.lib$") SET(${RET_VAL} - "NO" - PARENT_SCOPE + "NO" + PARENT_SCOPE ) RETURN() ENDIF() diff --git a/cmake/macros/rv_create_std_deps_vars.cmake b/cmake/macros/rv_create_std_deps_vars.cmake index f149d902d..55a46ff17 100644 --- a/cmake/macros/rv_create_std_deps_vars.cmake +++ b/cmake/macros/rv_create_std_deps_vars.cmake @@ -49,28 +49,39 @@ MACRO(RV_CREATE_STANDARD_DEPS_VARIABLES target_name version make_command configu SET(_version ${version} ) - - # Attempt to match Major.Minor.Patch - # CMAKE_MATCH_1 will be Major, CMAKE_MATCH_2 Minor, etc. - string(REGEX MATCH "^([0-9]+)\\.?([0-9]*)\\.?([0-9]*)" _dummy "${_version}") - # If the group was found, use it; otherwise default to 0 - if(CMAKE_MATCH_1) - set(_version_major ${CMAKE_MATCH_1}) - else() - set(_version_major 0) - endif() - if(CMAKE_MATCH_2) - set(_version_minor ${CMAKE_MATCH_2}) - else() - set(_version_minor 0) - endif() + # Attempt to match Major.Minor.Patch CMAKE_MATCH_1 will be Major, CMAKE_MATCH_2 Minor, etc. + STRING(REGEX MATCH "^([0-9]+)\\.?([0-9]*)\\.?([0-9]*)" _dummy "${_version}") + # If the group was found, use it; otherwise default to 0 + IF(CMAKE_MATCH_1) + SET(_version_major + ${CMAKE_MATCH_1} + ) + ELSE() + SET(_version_major + 0 + ) + ENDIF() + + IF(CMAKE_MATCH_2) + SET(_version_minor + ${CMAKE_MATCH_2} + ) + ELSE() + SET(_version_minor + 0 + ) + ENDIF() - if(CMAKE_MATCH_3) - set(_version_patch ${CMAKE_MATCH_3}) - else() - set(_version_patch 0) - endif() + IF(CMAKE_MATCH_3) + SET(_version_patch + ${CMAKE_MATCH_3} + ) + ELSE() + SET(_version_patch + 0 + ) + ENDIF() SET(${target_name}_VERSION ${_version} CACHE INTERNAL "" FORCE @@ -84,7 +95,7 @@ MACRO(RV_CREATE_STANDARD_DEPS_VARIABLES target_name version make_command configu ) SET(_cmake_build_command - ${CMAKE_COMMAND} --build ${_build_dir} --config ${CMAKE_BUILD_TYPE} -j${_cpu_count} + ${CMAKE_COMMAND} --build ${_build_dir} --config ${CMAKE_BUILD_TYPE} -j${_cpu_count} ) IF(RV_TARGET_WINDOWS) @@ -116,9 +127,8 @@ MACRO(RV_CREATE_STANDARD_DEPS_VARIABLES target_name version make_command configu LIST(APPEND _configure_options "-S ${_source_dir}") LIST(APPEND _configure_options "-B ${_build_dir}") - SET(_cmake_install_command - ${CMAKE_COMMAND} --install ${_build_dir} --prefix ${_install_dir} --config ${CMAKE_BUILD_TYPE} + ${CMAKE_COMMAND} --install ${_build_dir} --prefix ${_install_dir} --config ${CMAKE_BUILD_TYPE} ) # diff --git a/cmake/macros/rv_vfx.cmake b/cmake/macros/rv_vfx.cmake index cc148ff41..f1088e8be 100644 --- a/cmake/macros/rv_vfx.cmake +++ b/cmake/macros/rv_vfx.cmake @@ -5,40 +5,44 @@ # # -# RV_VFX_SET_VARIABLE output the right value based on the VFX platform. -# The value is choosen based on the RV_VFX_CY20XX variable. -# Output variable: ${_rv_vfx_variable_name} -macro(RV_VFX_SET_VARIABLE _rv_vfx_variable_name) - cmake_parse_arguments( - # Prefix - _rv_dep_var - # Options - "" - # One value keywords - "${RV_VFX_SUPPORTED_OPTIONS}" - # Multi value keywords - "" - # Args - ${ARGN} +# RV_VFX_SET_VARIABLE output the right value based on the VFX platform. The value is choosen based on the RV_VFX_CY20XX variable. Output variable: +# ${_rv_vfx_variable_name} +MACRO(RV_VFX_SET_VARIABLE _rv_vfx_variable_name) + CMAKE_PARSE_ARGUMENTS( + # Prefix + _rv_dep_var + # Options + "" + # One value keywords + "${RV_VFX_SUPPORTED_OPTIONS}" + # Multi value keywords + "" + # Args + ${ARGN} ) - # The implemenation covers a scenario where CY2023 is active, but only CY2024 is passed to the macro. (and vice versa) - # In the scenario above, the variable will not be set. - # The variable is only set if the the same CYXXXX is set and passed to the macro. - # The first CYXXXX that matches will win. It is based on the order in the list RV_VFX_SUPPORTED_OPTIONS. + # The implemenation covers a scenario where CY2023 is active, but only CY2024 is passed to the macro. (and vice versa) In the scenario above, the variable + # will not be set. The variable is only set if the the same CYXXXX is set and passed to the macro. The first CYXXXX that matches will win. It is based on the + # order in the list RV_VFX_SUPPORTED_OPTIONS. # Loop all defined VFX platform. - FOREACH(_rv_vfx_platform_ ${RV_VFX_SUPPORTED_OPTIONS}) + FOREACH( + _rv_vfx_platform_ + ${RV_VFX_SUPPORTED_OPTIONS} + ) # If the VFX platform is defined and it was pass as option to RV_VFX_SET_VARIABLE, set the variable. - IF(RV_VFX_${_rv_vfx_platform_} AND _rv_dep_var_${_rv_vfx_platform_}) - set(${_rv_vfx_variable_name} "${_rv_dep_var_${_rv_vfx_platform_}}") - # The order in RV_VFX_SUPPORTED_OPTIONS is IMPORTANT. - # Break on the first match. - break() + IF(RV_VFX_${_rv_vfx_platform_} + AND _rv_dep_var_${_rv_vfx_platform_} + ) + SET(${_rv_vfx_variable_name} + "${_rv_dep_var_${_rv_vfx_platform_}}" + ) + # The order in RV_VFX_SUPPORTED_OPTIONS is IMPORTANT. Break on the first match. + BREAK() ENDIF() ENDFOREACH() # Clean up - unset(_rv_dep_var_${_rv_vfx_platform_}) - unset(_rv_vfx_platform_) -endmacro() + UNSET(_rv_dep_var_${_rv_vfx_platform_}) + UNSET(_rv_vfx_platform_) +ENDMACRO() diff --git a/packages/rv/CMakeLists.txt b/packages/rv/CMakeLists.txt index 427350d6f..abd2d1abb 100644 --- a/packages/rv/CMakeLists.txt +++ b/packages/rv/CMakeLists.txt @@ -34,4 +34,4 @@ ENDIF() IF(RV_TARGET_LINUX) CONFIGURE_FILE(rv.install_handler_linux ${RV_STAGE_BIN_DIR} COPYONLY) CONFIGURE_FILE(rv.install_handler_linux_rvpush ${RV_STAGE_BIN_DIR} COPYONLY) -ENDIF() \ No newline at end of file +ENDIF() diff --git a/src/bin/apps/rvprof/CMakeLists.txt b/src/bin/apps/rvprof/CMakeLists.txt index 0a79128ff..415a14585 100644 --- a/src/bin/apps/rvprof/CMakeLists.txt +++ b/src/bin/apps/rvprof/CMakeLists.txt @@ -48,7 +48,13 @@ TARGET_INCLUDE_DIRECTORIES( TARGET_LINK_LIBRARIES( ${_target} - PRIVATE TwkMath TwkGLText OpenGL::GLU Qt::Gui Qt::OpenGL Qt::Widgets ${QT6_QOPENGLWIDGET_TARGET} + PRIVATE TwkMath + TwkGLText + OpenGL::GLU + Qt::Gui + Qt::OpenGL + Qt::Widgets + ${QT6_QOPENGLWIDGET_TARGET} ) TARGET_COMPILE_OPTIONS( diff --git a/src/bin/imgtools/CMakeLists.txt b/src/bin/imgtools/CMakeLists.txt index f98b48340..361ddbd7f 100644 --- a/src/bin/imgtools/CMakeLists.txt +++ b/src/bin/imgtools/CMakeLists.txt @@ -6,8 +6,8 @@ ADD_SUBDIRECTORY(rmsImageDiff) ADD_SUBDIRECTORY(rvio) -IF(RV_TARGET_LINUX) - ADD_SUBDIRECTORY(rvio_sw) +IF(RV_TARGET_LINUX) + ADD_SUBDIRECTORY(rvio_sw) ENDIF() ADD_SUBDIRECTORY(makeFBIOformats) diff --git a/src/bin/nsapps/rvlinklauncher/CMakeLists.txt b/src/bin/nsapps/rvlinklauncher/CMakeLists.txt index b9d247773..11fa87806 100644 --- a/src/bin/nsapps/rvlinklauncher/CMakeLists.txt +++ b/src/bin/nsapps/rvlinklauncher/CMakeLists.txt @@ -15,9 +15,13 @@ ADD_EXECUTABLE( # Set version suffix based on release type IF(NOT RV_RELEASE_DESCRIPTION STREQUAL "RELEASE") - SET(RV_VERSION_SUFFIX "-${ORV_GIT_COMMIT_SHORT_HASH_RES}") + SET(RV_VERSION_SUFFIX + "-${ORV_GIT_COMMIT_SHORT_HASH_RES}" + ) ELSE() - SET(RV_VERSION_SUFFIX "") + SET(RV_VERSION_SUFFIX + "" + ) ENDIF() SET_TARGET_PROPERTIES( diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt index de3427c81..bb6d70485 100644 --- a/src/lib/CMakeLists.txt +++ b/src/lib/CMakeLists.txt @@ -16,4 +16,4 @@ ADD_SUBDIRECTORY(ui) ADD_SUBDIRECTORY(qt) ADD_SUBDIRECTORY(graphics) ADD_SUBDIRECTORY(network) -ADD_SUBDIRECTORY(python) \ No newline at end of file +ADD_SUBDIRECTORY(python) diff --git a/src/lib/app/PyMediaLibrary/CMakeLists.txt b/src/lib/app/PyMediaLibrary/CMakeLists.txt index 1c88327a9..e881d8a8b 100644 --- a/src/lib/app/PyMediaLibrary/CMakeLists.txt +++ b/src/lib/app/PyMediaLibrary/CMakeLists.txt @@ -7,30 +7,27 @@ INCLUDE(cxx_defaults) SET(_target - "PyMediaLibrary" + "PyMediaLibrary" ) SET(_sources - PyMediaLibrary.cpp - PyRootNode.cpp - PyMediaNode.cpp - PyNode.cpp + PyMediaLibrary.cpp PyRootNode.cpp PyMediaNode.cpp PyNode.cpp ) ADD_LIBRARY( - ${_target} STATIC - ${_sources} + ${_target} STATIC + ${_sources} ) TARGET_LINK_LIBRARIES( - ${_target} - PUBLIC RvApp TwkMediaLibrary Python::Python - PRIVATE TwkPython TwkUtil + ${_target} + PUBLIC RvApp TwkMediaLibrary Python::Python + PRIVATE TwkPython TwkUtil ) TARGET_INCLUDE_DIRECTORIES( - ${_target} - PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} + ${_target} + PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} ) RV_STAGE(TYPE "LIBRARY" TARGET ${_target}) diff --git a/src/lib/app/RvCommon/CMakeLists.txt b/src/lib/app/RvCommon/CMakeLists.txt index 8f94ab734..51d8ea087 100644 --- a/src/lib/app/RvCommon/CMakeLists.txt +++ b/src/lib/app/RvCommon/CMakeLists.txt @@ -323,9 +323,8 @@ STRING(REPLACE ";" "," _versions_str "${_versions_list}") ADD_CUSTOM_COMMAND( OUTPUT ${_about_rv_cpp} - COMMAND - python3 ${CMAKE_CURRENT_SOURCE_DIR}/generate_about_rv.py ${_about_rv_cpp} "${_compiler_name}" - "${_vfx_platform_str}" "${_platform_name}" "${_arch_name}" "${RV_UI_APPLICATION_NAME}" "${_versions_str}" "${RV_GIT_COMMIT_SHORT_HASH}" + COMMAND python3 ${CMAKE_CURRENT_SOURCE_DIR}/generate_about_rv.py ${_about_rv_cpp} "${_compiler_name}" "${_vfx_platform_str}" "${_platform_name}" + "${_arch_name}" "${RV_UI_APPLICATION_NAME}" "${_versions_str}" "${RV_GIT_COMMIT_SHORT_HASH}" DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/generate_about_rv.py COMMENT "Generating about_rv.cpp with build information" VERBATIM diff --git a/src/lib/graphics/TwkGLF/CMakeLists.txt b/src/lib/graphics/TwkGLF/CMakeLists.txt index 31032408c..81507dc80 100644 --- a/src/lib/graphics/TwkGLF/CMakeLists.txt +++ b/src/lib/graphics/TwkGLF/CMakeLists.txt @@ -89,8 +89,12 @@ TARGET_INCLUDE_DIRECTORIES( ) TARGET_LINK_LIBRARIES( - ${_target} - TwkApp TwkFB TwkGLText TwkUtil TwkAudio + ${_target} + TwkApp + TwkFB + TwkGLText + TwkUtil + TwkAudio Qt::Core Qt::Gui Qt::Widgets diff --git a/src/lib/image/IOhtj2k/CMakeLists.txt b/src/lib/image/IOhtj2k/CMakeLists.txt index b995f4160..c06fe07fb 100644 --- a/src/lib/image/IOhtj2k/CMakeLists.txt +++ b/src/lib/image/IOhtj2k/CMakeLists.txt @@ -1,6 +1,5 @@ # -# Copyright (C) 2025 Sam Richards -# SPDX-License-Identifier: Apache-2.0 +# Copyright (C) 2025 Sam Richards SPDX-License-Identifier: Apache-2.0 # INCLUDE(cxx_defaults) @@ -26,8 +25,7 @@ TARGET_INCLUDE_DIRECTORIES( TARGET_LINK_LIBRARIES( ${_target} PUBLIC TwkFB - PRIVATE TwkUtil OpenJph::OpenJph - ) - + PRIVATE TwkUtil OpenJph::OpenJph +) RV_STAGE(TYPE "LIBRARY" TARGET ${_target}) diff --git a/src/lib/image/io_htj2k/CMakeLists.txt b/src/lib/image/io_htj2k/CMakeLists.txt index cf3b0e531..acdc26fbe 100644 --- a/src/lib/image/io_htj2k/CMakeLists.txt +++ b/src/lib/image/io_htj2k/CMakeLists.txt @@ -1,6 +1,5 @@ # -# Copyright (C) 2025 Sam Richards -# SPDX-License-Identifier: Apache-2.0 +# Copyright (C) 2025 Sam Richards SPDX-License-Identifier: Apache-2.0 # INCLUDE(cxx_defaults) diff --git a/src/lib/mu/CMakeLists.txt b/src/lib/mu/CMakeLists.txt index 968708126..d22a1f71f 100644 --- a/src/lib/mu/CMakeLists.txt +++ b/src/lib/mu/CMakeLists.txt @@ -14,9 +14,9 @@ ADD_SUBDIRECTORY(MuGLU) ADD_SUBDIRECTORY(MuGLText) IF(RV_VFX_PLATFORM STREQUAL CY2023) - ADD_SUBDIRECTORY(MuQt5) + ADD_SUBDIRECTORY(MuQt5) ELSEIF(RV_VFX_PLATFORM STRGREATER_EQUAL CY2024) - ADD_SUBDIRECTORY(MuQt6) + ADD_SUBDIRECTORY(MuQt6) ENDIF() ADD_SUBDIRECTORY(MuEncoding) diff --git a/src/lib/python/CMakeLists.txt b/src/lib/python/CMakeLists.txt index 712e89919..78f4cc81e 100644 --- a/src/lib/python/CMakeLists.txt +++ b/src/lib/python/CMakeLists.txt @@ -1,7 +1,7 @@ # -#Copyright( C ) 2024 Autodesk, Inc.All Rights Reserved. +# Copyright( C ) 2024 Autodesk, Inc.All Rights Reserved. # -#SPDX - License - Identifier : Apache - 2.0 +# SPDX - License - Identifier : Apache - 2.0 # -ADD_SUBDIRECTORY( TwkPython ) \ No newline at end of file +ADD_SUBDIRECTORY(TwkPython) diff --git a/src/lib/python/TwkPython/CMakeLists.txt b/src/lib/python/TwkPython/CMakeLists.txt index a86d09831..f839704dd 100644 --- a/src/lib/python/TwkPython/CMakeLists.txt +++ b/src/lib/python/TwkPython/CMakeLists.txt @@ -19,7 +19,6 @@ ADD_LIBRARY( ${_sources} ) - TARGET_LINK_LIBRARIES( ${_target} PUBLIC Python::Python diff --git a/src/plugins/rv-packages/media_library_demo/CMakeLists.txt b/src/plugins/rv-packages/media_library_demo/CMakeLists.txt index e03a66e58..c26bff680 100644 --- a/src/plugins/rv-packages/media_library_demo/CMakeLists.txt +++ b/src/plugins/rv-packages/media_library_demo/CMakeLists.txt @@ -11,7 +11,7 @@ # SET(_target - "media_library_demo" + "media_library_demo" ) RV_STAGE(TYPE "RVPKG" TARGET ${_target}) diff --git a/src/plugins/rv-packages/session_manager/CMakeLists.txt b/src/plugins/rv-packages/session_manager/CMakeLists.txt index 52334c832..c75c39c2d 100644 --- a/src/plugins/rv-packages/session_manager/CMakeLists.txt +++ b/src/plugins/rv-packages/session_manager/CMakeLists.txt @@ -9,13 +9,21 @@ SET(_target ) IF(RV_VFX_PLATFORM STRGREATER_EQUAL CY2024) - SET(MU_QT_QDRAGMOVEEVENT_POSITION "event.position().toPoint()") - SET(MU_QT_QPALETTE_COLORROLE "QPalette.Window") + SET(MU_QT_QDRAGMOVEEVENT_POSITION + "event.position().toPoint()" + ) + SET(MU_QT_QPALETTE_COLORROLE + "QPalette.Window" + ) ELSEIF(RV_VFX_PLATFORM STREQUAL CY2023) - SET(MU_QT_QDRAGMOVEEVENT_POSITION "event.pos()") - SET(MU_QT_QPALETTE_COLORROLE "QPalette.Background") + SET(MU_QT_QDRAGMOVEEVENT_POSITION + "event.pos()" + ) + SET(MU_QT_QPALETTE_COLORROLE + "QPalette.Background" + ) ENDIF() -configure_file(session_manager.mu.in ${CMAKE_CURRENT_SOURCE_DIR}/session_manager.mu @ONLY) +CONFIGURE_FILE(session_manager.mu.in ${CMAKE_CURRENT_SOURCE_DIR}/session_manager.mu @ONLY) RV_STAGE(TYPE "RVPKG" TARGET ${_target}) From 3b7ec9789fd8736a862ca25450fbf67c01a48b80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89lo=C3=AFse=20Brosseau?= Date: Mon, 22 Dec 2025 11:45:10 -0500 Subject: [PATCH 3/4] Remove Lint and Format step for ci.yml MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Éloïse Brosseau --- .github/workflows/ci.yml | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f130676ac..1a4b3d65c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -35,26 +35,6 @@ env: WINDOWS_QT6_ARCHIVES: 'd3dcompiler_47 opengl32sw qtbase qtdeclarative qtsvg qttools qttranslations' jobs: - lint-format: - name: "Lint and Format" - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Install Python - uses: actions/setup-python@v5 - with: - python-version: "3.11" - - name: Install dependencies - run: | - python3 -m pip install --upgrade pip - pip install ruff - - name: Run Ruff check - # Check if all the files are linted correctly - # Output errors as inline annotations - run: ruff check --output-format=github - - name: Run Ruff format - # Check if all the files are formatted correctly - run: ruff format --check rocky-linux: if : ${{ github.repository_owner == 'AcademySoftwareFoundation' }} name: 'Rocky Linux ${{ matrix.rocky-version }} ${{ matrix.vfx-platform }} From 25420b126773720cb761ef43f5c680ecd5ca2f2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89lo=C3=AFse=20Brosseau?= Date: Mon, 22 Dec 2025 11:49:15 -0500 Subject: [PATCH 4/4] Disable pre-commit.ci auto-fixing PRs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Éloïse Brosseau --- .pre-commit-config.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index d882803a0..c65de9491 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -17,3 +17,6 @@ repos: - id: clang-format types_or: [c++, c] exclude: '\.(m|mm)$' + +ci: + autofix_prs: false