Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 24 additions & 20 deletions .github/workflows/app_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -64,29 +64,29 @@ 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
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: 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:
Expand Down Expand Up @@ -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
Expand All @@ -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;

Expand Down Expand Up @@ -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

Expand Down Expand Up @@ -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

Expand Down Expand Up @@ -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
Expand Down
20 changes: 10 additions & 10 deletions FindOpenStudioSDK.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -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 "-rc2")
# Enter SHA, always, eg "+79857912c4"
set(OPENSTUDIO_VERSION_SHA "+dee62bf9dd")
set(OPENSTUDIO_VERSION_SHA "+d7794add90")

# Paths where the cmake-downloaded archives will be put
set(OPENSTUDIO_ARCHIVE_DIR "${PROJECT_BINARY_DIR}/OpenStudio-${OPENSTUDIO_VERSION}")
Expand All @@ -17,37 +17,37 @@ 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 baf8f2b746484aad21f55856df78cf37)
else()
set(OPENSTUDIO_EXPECTED_HASH TODO_MISSING_TODO) # There is no mac intel (x86_64) installer
set(OPENSTUDIO_EXPECTED_HASH 9256f9061a57010a08cac82e2bb8a0bd)
endif()

elseif(UNIX)
set(OPENSTUDIO_PLATFORM "${LSB_RELEASE_ID_SHORT}-${LSB_RELEASE_VERSION_SHORT}-${ARCH}")
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 0572af8679b61447e5dd0d55811070fb)
else()
set(OPENSTUDIO_EXPECTED_HASH b822fa5d6f51d67dc11b8b0abf363c4c)
set(OPENSTUDIO_EXPECTED_HASH 17f79dddea60fdbf41e59a35c948d78a)
endif()
elseif(LSB_RELEASE_VERSION_SHORT MATCHES "22.04")
if (ARCH MATCHES "arm64")
set(OPENSTUDIO_EXPECTED_HASH 1df158161213c1dd7562d489c8576c94)
set(OPENSTUDIO_EXPECTED_HASH 603e892fd8cfa4be7cdfcaa4f6f44dfe)
else()
set(OPENSTUDIO_EXPECTED_HASH 2aed3184c33125b196ec833a1def9483)
set(OPENSTUDIO_EXPECTED_HASH 59839e3d7a902de908fd2f49051df368)
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 6832b3122470240dfc94129801e8cffa)
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 07fbdb6f3b2ef7ea695c64ee00f859be)
set(OPENSTUDIO_PLATFORM "Windows")
endif()

Expand Down
2 changes: 1 addition & 1 deletion conan.lock
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is a newer version of this package which raises the minimum version of CMake. However, the OpenStudio conan.lock pins the older revision which doesn't work with the version of CMake installer on the new Mac runners

"swig/4.1.1#2bb5c79321cbb05bcab525c690d9bf74%1707838669.551",
"stb/cci.20230920#9792498b81cf34a90138d239e36b0bf8%1700546289.605",
"sqlite3/3.38.5#4b875d4249cdfb4c1235e6b3ea6c18e7%1676251415.466",
Expand Down
1 change: 1 addition & 0 deletions conanfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand Down
13 changes: 11 additions & 2 deletions src/openstudio_app/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand All @@ -471,13 +476,17 @@ if( APPLE )
"../../../lib/$<TARGET_FILE_NAME:openstudio::openstudiolib>"
"${CMAKE_INSTALL_PREFIX}/OpenStudioApp.app/Contents/Frameworks/$<TARGET_FILE_NAME:openstudio::openstudiolib>"

COMMAND "${CMAKE_COMMAND}" -E create_symlink
"../lib/$<TARGET_FILE_NAME:openstudio::openstudiolib>"
"${CMAKE_INSTALL_PREFIX}/Ruby/$<TARGET_FILE_NAME:openstudio::openstudiolib>"

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/$<TARGET_FILE_NAME:openstudio::openstudio>"
Expand Down
Loading