Skip to content
Merged
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
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -272,7 +272,7 @@ endif()

# TODO: Modify the more specific variables as needed to indicate prerelease, etc
# Keep in beta in-between release cycles. Set to empty string (or comment out) for official)
set(PROJECT_VERSION_PRERELEASE "alpha")
set(PROJECT_VERSION_PRERELEASE "rc1")

# OpenStudio version: Only include Major.Minor.Patch, eg "3.0.0", even if you have a prerelease tag
set(OPENSTUDIOAPPLICATION_VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}")
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 "")
# Enter SHA, always, eg "+79857912c4"
set(OPENSTUDIO_VERSION_SHA "+dee62bf9dd")
set(OPENSTUDIO_VERSION_SHA "+241b8abb4d")

# 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 92145ffe9f13c8fee1df48a0f781e280)
else()
set(OPENSTUDIO_EXPECTED_HASH TODO_MISSING_TODO) # There is no mac intel (x86_64) installer
set(OPENSTUDIO_EXPECTED_HASH 001c938919ef5cbbeed4b3e2411d9796)
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 628d58dddf83034866ec38c2ff522736)
else()
set(OPENSTUDIO_EXPECTED_HASH b822fa5d6f51d67dc11b8b0abf363c4c)
set(OPENSTUDIO_EXPECTED_HASH e761fe3678fd906a50e16a54dab10cd1)
endif()
elseif(LSB_RELEASE_VERSION_SHORT MATCHES "22.04")
if (ARCH MATCHES "arm64")
set(OPENSTUDIO_EXPECTED_HASH 1df158161213c1dd7562d489c8576c94)
set(OPENSTUDIO_EXPECTED_HASH 361b01db5caf7086e6730b3b0063f104)
else()
set(OPENSTUDIO_EXPECTED_HASH 2aed3184c33125b196ec833a1def9483)
set(OPENSTUDIO_EXPECTED_HASH 7d4071fe910e5297b66f66ee74754fa6)
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 a578519e4c7537a7ad730006f1ffeb79)
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 eb366f8a64a20977bb5976ebdcccf513)
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",
"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