diff --git a/.github/workflows/app_build.yml b/.github/workflows/app_build.yml index c5be791f7..1bb71de3f 100644 --- a/.github/workflows/app_build.yml +++ b/.github/workflows/app_build.yml @@ -32,7 +32,7 @@ jobs: # fail-fast: Default is true, switch to false to allow one platform to fail and still run others fail-fast: false matrix: - os: [ubuntu-22.04, ubuntu-24.04, windows-2022, macos-13, macos-arm64] + os: [ubuntu-22.04, ubuntu-24.04, windows-2022, macos-15-intel, macos-15] include: - os: ubuntu-22.04 SELF_HOSTED: false @@ -64,7 +64,7 @@ jobs: QT_OS_NAME: windows QT_ARCH: win64_msvc2019_64 arch: x86_64 - - os: macos-13 + - os: macos-15-intel SELF_HOSTED: false PLATFORM_NAME: Darwin BINARY_EXT: dmg @@ -72,21 +72,21 @@ jobs: BINARY_PKG_PATH: _CPack_Packages/Darwin/IFW COMPRESSED_PKG_PATH: _CPack_Packages/Darwin/TGZ MACOSX_DEPLOYMENT_TARGET: 13.0 - SDKROOT: /Applications/Xcode_15.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk + SDKROOT: /Applications/Xcode_16.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk QT_OS_NAME: mac QT_ARCH: clang_64 arch: x86_64 - - os: macos-arm64 - SELF_HOSTED: true + - os: macos-15 + SELF_HOSTED: false PLATFORM_NAME: Darwin BINARY_EXT: dmg COMPRESSED_EXT: tar.gz BINARY_PKG_PATH: _CPack_Packages/Darwin/IFW COMPRESSED_PKG_PATH: _CPack_Packages/Darwin/TGZ MACOSX_DEPLOYMENT_TARGET: 13.0 - SDKROOT: /Applications/Xcode_15.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk + SDKROOT: /Applications/Xcode_16.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk QT_OS_NAME: mac - QT_ARCH: arm_64 + QT_ARCH: clang_64 arch: arm64 steps: @@ -184,10 +184,10 @@ jobs: echo "/Users/irvinemac/Qt/Tools/QtInstallerFramework/4.3/bin/" >> $GITHUB_PATH else echo "Setting Xcode version" - sudo xcode-select -s "/Applications/Xcode_15.2.app/Contents/Developer/" + sudo xcode-select -s "/Applications/Xcode_16.4.app/Contents/Developer/" echo "Using brew to install ninja" - brew install ninja md5sha1sum ccache + brew install md5sha1sum ccache ccache --set-config=cache_dir=$CCACHE_DIR ccache --set-config=max_size=500M @@ -196,9 +196,12 @@ jobs: # The openssl@3 package installed on CI adds these files to the pkgconfig directory # Remove them here so they aren't found instead of the version of OpenSSL built by Conan - rm /usr/local/lib/pkgconfig/libcrypto.pc - rm /usr/local/lib/pkgconfig/libssl.pc - rm /usr/local/lib/pkgconfig/openssl.pc + if [ -d /usr/local/lib/pkgconfig/ ]; then + ls -alsh /usr/local/lib/pkgconfig/ + rm -f /usr/local/lib/pkgconfig/libcrypto.pc + rm -f /usr/local/lib/pkgconfig/libssl.pc + rm -f /usr/local/lib/pkgconfig/openssl.pc + fi; fi; fi; @@ -235,8 +238,8 @@ jobs: brew list aria2 || brew install aria2 aria2c https://www.apple.com/certificateauthority/AppleWWDRCAG2.cer aria2c https://www.apple.com/certificateauthority/DeveloperIDG2CA.cer - security import AppleWWDRCAG2.cer -k $KEYCHAIN_PATH - security import DeveloperIDG2CA.cer -k $KEYCHAIN_PATH + security import AppleWWDRCAG2.cer -k $KEYCHAIN_PATH || true + security import DeveloperIDG2CA.cer -k $KEYCHAIN_PATH || true security find-identity -vvvv $KEYCHAIN_PATH security find-identity -v -p codesigning @@ -430,6 +433,8 @@ jobs: pip show setuptools || true pip install setuptools --upgrade pip3 install aqtinstall + aqt list-qt mac desktop --arch 6.5.2 + aqt list-qt mac desktop --modules 6.5.2 ${{ matrix.QT_ARCH }} aqt install-qt --outputdir ./build/Qt-install/ ${{ matrix.QT_OS_NAME }} desktop $QT_VERSION ${{ matrix.QT_ARCH }} -m qtwebchannel qtwebengine qtwebview qt5compat qtpositioning qtcharts fi @@ -698,17 +703,16 @@ jobs: # fail-fast: Default is true, switch to false to allow one platform to fail and still run others fail-fast: false matrix: - os: [macos-13, macos-14] + os: [macos-15-intel, macos-15] include: - - os: macos-13 - binary_os: macos-13 + - os: macos-15-intel + binary_os: macos-15-intel SELF_HOSTED: false BINARY_EXT: dmg COMPRESSED_EXT: tar.gz arch: x86_64 - # This is the GHA hosted one - - os: macos-14 - binary_os: macos-arm64 + - os: macos-15 + binary_os: macos-15 SELF_HOSTED: false BINARY_EXT: dmg COMPRESSED_EXT: tar.gz diff --git a/FindOpenStudioSDK.cmake b/FindOpenStudioSDK.cmake index 4cadd384d..410bde51d 100644 --- a/FindOpenStudioSDK.cmake +++ b/FindOpenStudioSDK.cmake @@ -4,9 +4,9 @@ set(OPENSTUDIO_VERSION_PATCH 0) set(OPENSTUDIO_VERSION "${OPENSTUDIO_VERSION_MAJOR}.${OPENSTUDIO_VERSION_MINOR}.${OPENSTUDIO_VERSION_PATCH}") #If this is an official release, leave this "", otherwise put for eg '-rc1' -set(OPENSTUDIO_VERSION_PRERELEASE "-rc1") +set(OPENSTUDIO_VERSION_PRERELEASE "-rc3") # Enter SHA, always, eg "+79857912c4" -set(OPENSTUDIO_VERSION_SHA "+dee62bf9dd") +set(OPENSTUDIO_VERSION_SHA "+7d1f8bdb36") # Paths where the cmake-downloaded archives will be put set(OPENSTUDIO_ARCHIVE_DIR "${PROJECT_BINARY_DIR}/OpenStudio-${OPENSTUDIO_VERSION}") @@ -17,9 +17,9 @@ set(OPENSTUDIO_EXT "tar.gz") if(APPLE) set(OPENSTUDIO_PLATFORM "Darwin-${ARCH}") if(ARCH MATCHES "arm64") - set(OPENSTUDIO_EXPECTED_HASH 389a02d7f9d3526454bca74393ac7a6e) + set(OPENSTUDIO_EXPECTED_HASH 37d5d0aa39a53d510ef80ff20cd259ab) else() - set(OPENSTUDIO_EXPECTED_HASH TODO_MISSING_TODO) # There is no mac intel (x86_64) installer + set(OPENSTUDIO_EXPECTED_HASH 5dca5e48f72c59752cb1ff69bc096e92) endif() elseif(UNIX) @@ -27,27 +27,27 @@ elseif(UNIX) if(LSB_RELEASE_VERSION_SHORT MATCHES "24.04") #set(OPENSTUDIO_PLATFORM "${LSB_RELEASE_ID_SHORT}-22.04-${ARCH}") if (ARCH MATCHES "arm64") - set(OPENSTUDIO_EXPECTED_HASH 2c0dc0cac19f2a09b3cb89a1c1bc52d7) + set(OPENSTUDIO_EXPECTED_HASH d34cc5bc2852b2ddbdcfb59aad875a37) else() - set(OPENSTUDIO_EXPECTED_HASH b822fa5d6f51d67dc11b8b0abf363c4c) + set(OPENSTUDIO_EXPECTED_HASH ac2e2a7bc2659211425e60cdd703ce67) endif() elseif(LSB_RELEASE_VERSION_SHORT MATCHES "22.04") if (ARCH MATCHES "arm64") - set(OPENSTUDIO_EXPECTED_HASH 1df158161213c1dd7562d489c8576c94) + set(OPENSTUDIO_EXPECTED_HASH bc9671271df500b488fa72a138d0c3d3) else() - set(OPENSTUDIO_EXPECTED_HASH 2aed3184c33125b196ec833a1def9483) + set(OPENSTUDIO_EXPECTED_HASH de7c9fcfd5398a3726757ad7cf7c4fa3) endif() elseif(LSB_RELEASE_ID_SHORT MATCHES "AlmaLinux") if (ARCH MATCHES "arm64") message(FATAL_ERROR "OpenStudio SDK for AlmaLinux is only built for x86_64") endif() - set(OPENSTUDIO_EXPECTED_HASH 0ed8089fd49054fe237c77070d492502) + set(OPENSTUDIO_EXPECTED_HASH 7fb41aab9c9eadb1018a87c5cd171d3b) else() message(FATAL_ERROR "OpenStudio SDK no longer provides packages for Ubuntu 20.04 or older") endif() elseif(WIN32) - set(OPENSTUDIO_EXPECTED_HASH 85d4677a325285549a850a872e86ffb6) + set(OPENSTUDIO_EXPECTED_HASH bb4c6429e35e9ecbbbea015c1a1ef48a) set(OPENSTUDIO_PLATFORM "Windows") endif() diff --git a/conan.lock b/conan.lock index 6ad38c538..e82c82c89 100644 --- a/conan.lock +++ b/conan.lock @@ -4,7 +4,7 @@ "zlib/1.3.1#af8f2ef3d8e0fddf1975281d7fe43bf6%1705999193.687", "websocketpp/0.8.2#842a0419153a8aa52f3ea3a1da557d38%1695972005.713", "tinygltf/2.5.0#65c28d0a4c3cbd4ef92b08b59df769da%1701621757.442", - "termcap/1.3.1#1986f84bf21dd07ea774b027a3201fcb%1678542508.75", + "termcap/1.3.1#479400c750a869f77b3d2d3a82e06f7d%1755703795.492", "swig/4.1.1#2bb5c79321cbb05bcab525c690d9bf74%1707838669.551", "stb/cci.20230920#9792498b81cf34a90138d239e36b0bf8%1700546289.605", "sqlite3/3.38.5#4b875d4249cdfb4c1235e6b3ea6c18e7%1676251415.466", diff --git a/conanfile.py b/conanfile.py index 65544f903..8bf634981 100644 --- a/conanfile.py +++ b/conanfile.py @@ -43,6 +43,7 @@ def requirements(self): self.requires("geographiclib/1.52") # 76536a9315a003ef3511919310b2fe37 self.requires("swig/4.1.1") # Pending https://github.com/conan-io/conan-center-index/pull/19058 self.requires("tinygltf/2.5.0") # c8b2aca9505e86312bb42aa0e1c639ec + self.requires("termcap/1.3.1#479400c750a869f77b3d2d3a82e06f7d") # need version with updated minimum cmake # self.requires("cli11/2.3.2") # 8ccdf14fb1ad53532d498c16ae580b4b self.requires( diff --git a/src/openstudio_app/CMakeLists.txt b/src/openstudio_app/CMakeLists.txt index 5436c49bd..c347cf674 100644 --- a/src/openstudio_app/CMakeLists.txt +++ b/src/openstudio_app/CMakeLists.txt @@ -444,9 +444,14 @@ if( APPLE ) # TODO: We can also just symlink libopenstudio.lib into the OpenStudioApp.app/Contents/Frameworks directory instead of copying install(CODE [[ + # print the CMAKE_INSTALL_PREFIX for debugging, use separate `execute_process` to avoid broken pipes between commands execute_process( - COMMAND echo "CMAKE_INSTALL_PREFIX = ${CMAKE_INSTALL_PREFIX}" + COMMAND "${CMAKE_COMMAND}" -E echo "CMAKE_INSTALL_PREFIX = ${CMAKE_INSTALL_PREFIX}" + COMMAND_ECHO STDOUT + ) + + execute_process( COMMAND "${CMAKE_COMMAND}" -E create_symlink "../../../../../../../Frameworks" "${CMAKE_INSTALL_PREFIX}/OpenStudioApp.app/Contents/Frameworks/QtWebEngineCore.framework/Versions/A/Helpers/QtWebEngineProcess.app/Contents/Frameworks" @@ -471,13 +476,17 @@ if( APPLE ) "../../../lib/$" "${CMAKE_INSTALL_PREFIX}/OpenStudioApp.app/Contents/Frameworks/$" + COMMAND "${CMAKE_COMMAND}" -E create_symlink + "../lib/$" + "${CMAKE_INSTALL_PREFIX}/Ruby/$" + COMMAND "${CMAKE_COMMAND}" -E make_directory "${CMAKE_INSTALL_PREFIX}/bin" COMMAND_ECHO STDOUT COMMAND_ERROR_IS_FATAL ANY ) - # We break it into two `execute_process`es so that there is no race condition between the make_directory above and the create_symlink below + # separate `execute_process`es so that there is no race condition between the make_directory above and the create_symlink below execute_process( COMMAND "${CMAKE_COMMAND}" -E create_symlink "../OpenStudioApp.app/Contents/MacOS/$"