Skip to content

Commit 30b60e2

Browse files
committed
Enhance architecture handling in packaging and build scripts for macOS
1 parent c5d7a38 commit 30b60e2

File tree

2 files changed

+19
-5
lines changed

2 files changed

+19
-5
lines changed

CMakeLists.txt

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -110,11 +110,23 @@ set(CPACK_PACKAGE_VERSION_MINOR ${PROJECT_VERSION_MINOR})
110110
set(CPACK_PACKAGE_VERSION_PATCH ${PROJECT_VERSION_PATCH})
111111
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Parametric Analysis Tool")
112112
set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "https://www.openstudio.net")
113-
if(CMAKE_OSX_ARCHITECTURES STREQUAL "arm64")
114-
set(CPACK_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${PROJECT_VERSION}-${CMAKE_SYSTEM_NAME}-arm64")
115-
elseif(CMAKE_OSX_ARCHITECTURES STREQUAL "x86_64")
116-
set(CPACK_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${PROJECT_VERSION}-${CMAKE_SYSTEM_NAME}-x86_64")
113+
# Handle architecture-specific package naming
114+
if(CMAKE_OSX_ARCHITECTURES)
115+
# Check if CMAKE_OSX_ARCHITECTURES contains multiple architectures (semicolon-separated)
116+
string(FIND "${CMAKE_OSX_ARCHITECTURES}" ";" MULTI_ARCH_POS)
117+
if(MULTI_ARCH_POS GREATER -1)
118+
# Multiple architectures detected - use "universal" suffix
119+
set(CPACK_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${PROJECT_VERSION}-${CMAKE_SYSTEM_NAME}-universal")
120+
elseif(CMAKE_OSX_ARCHITECTURES STREQUAL "arm64")
121+
set(CPACK_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${PROJECT_VERSION}-${CMAKE_SYSTEM_NAME}-arm64")
122+
elseif(CMAKE_OSX_ARCHITECTURES STREQUAL "x86_64")
123+
set(CPACK_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${PROJECT_VERSION}-${CMAKE_SYSTEM_NAME}-x86_64")
124+
else()
125+
# Single architecture but not arm64/x86_64 - use the architecture name
126+
set(CPACK_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${PROJECT_VERSION}-${CMAKE_SYSTEM_NAME}-${CMAKE_OSX_ARCHITECTURES}")
127+
endif()
117128
else()
129+
# No architecture specified - use default naming
118130
set(CPACK_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${PROJECT_VERSION}-${CMAKE_SYSTEM_NAME}")
119131
endif()
120132
set(CPACK_PACKAGE_CONTACT "openstudio@nrel.gov")

tasks/build.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,9 @@ const manifest = jetpack.read('manifest.json', 'json');
166166

167167
const platform = os.platform();
168168
// Priority: MATRIX_ARCH (set by workflow) > CMAKE_OSX_ARCHITECTURES > os.arch()
169-
const arch = process.env.MATRIX_ARCH || process.env.CMAKE_OSX_ARCHITECTURES || os.arch();
169+
// Handle multi-architecture CMAKE_OSX_ARCHITECTURES by taking the first architecture
170+
const cmakeArch = process.env.CMAKE_OSX_ARCHITECTURES ? process.env.CMAKE_OSX_ARCHITECTURES.split(';')[0] : null;
171+
const arch = process.env.MATRIX_ARCH || cmakeArch || os.arch();
170172

171173
console.log(`Building for platform: ${platform}, architecture: ${arch}`);
172174
console.log(`Environment variables:`);

0 commit comments

Comments
 (0)