Skip to content

Commit 4ed3f1f

Browse files
committed
For the TGZ package, I was signing and resigning over and over again. Break up install scripts per component, and do cleanup of cmake lists to avoid signing Radiance like 20 times total.
1 parent a32d25c commit 4ed3f1f

File tree

5 files changed

+456
-225
lines changed

5 files changed

+456
-225
lines changed

.github/workflows/app_build.yml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -711,12 +711,14 @@ jobs:
711711
os: [macos-13, macos-14]
712712
include:
713713
- os: macos-13
714+
binary_os: macos-13
714715
SELF_HOSTED: false
715716
BINARY_EXT: dmg
716717
COMPRESSED_EXT: tar.gz
717718
arch: x86_64
718719
# This is the GHA hosted one
719720
- os: macos-14
721+
binary_os: macos-arm64
720722
SELF_HOSTED: false
721723
BINARY_EXT: dmg
722724
COMPRESSED_EXT: tar.gz
@@ -730,13 +732,13 @@ jobs:
730732
#- name: Gather Test Package from Artifacts
731733
# uses: actions/download-artifact@v4
732734
# with:
733-
# name: OpenStudioApplication-${{ needs.build.outputs.OS_APP_VERSION }}.${{ github.sha }}-${{ matrix.os }}.${{ matrix.COMPRESSED_EXT }}
735+
# name: OpenStudioApplication-${{ needs.build.outputs.OS_APP_VERSION }}.${{ github.sha }}-${{ matrix.binary_os }}.${{ matrix.COMPRESSED_EXT }}
734736
# path: package
735737

736738
- name: Gather Dmg Package from Artifacts
737739
uses: actions/download-artifact@v4
738740
with:
739-
name: OpenStudioApplication-${{ needs.build.outputs.OS_APP_VERSION }}.${{ github.sha }}-${{ matrix.os }}.${{ matrix.BINARY_EXT }}
741+
name: OpenStudioApplication-${{ needs.build.outputs.OS_APP_VERSION }}.${{ github.sha }}-${{ matrix.binary_os }}.${{ matrix.BINARY_EXT }}
740742
path: dmg
741743

742744
- name: Test Dmg Install and Package signing
@@ -761,7 +763,6 @@ jobs:
761763
762764
begin_group "Installing"
763765
sudo ./temp_mount/$filename.app/Contents/MacOS/$filename --accept-licenses --default-answer --confirm-command --root $(pwd)/test_install install
764-
hdiutil detach ./temp_mount/
765766
echo "::endgroup::"
766767
767768
begin_group "Quick Check signature of inner executables and binaries"
@@ -787,6 +788,8 @@ jobs:
787788
./test_install/EnergyPlus/energyplus -w USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw -d out PythonPluginCustomSchedule.idf
788789
echo "::endgroup::"
789790
791+
hdiutil detach ./temp_mount/
792+
790793
- name: Upload otool info as artifact
791794
uses: actions/upload-artifact@v4
792795
with:

CMake/install_codesign_script.cmake

Lines changed: 8 additions & 211 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,6 @@ Pre-conditions:
2121
2222
This script will codesign the ``FILES_TO_SIGN``.
2323
24-
**AN EXAMPLE** is provided to show how you could hardcode some globs, in this specific case it looks for any root dylibs by globbing for ``lib*.dylib``
25-
2624
To do so, it uses the `CodeSigning`_ functions :cmake:command:`codesign_files_macos`
2725
2826
This script will therefore run in the CPack staging area, and should be added after installation of root dylibs (they may come from fixup_executable)
@@ -32,9 +30,9 @@ Usage::
3230
3331
if(APPLE AND CPACK_CODESIGNING_DEVELOPPER_ID_APPLICATION)
3432
set(FILES_TO_SIGN "fileA" "fileB")
33+
install(CODE "set(FILES_TO_SIGN \"${FILES_TO_SIGN}\")" COMPONENT Unspecified)
3534
install(CODE "set(CPACK_CODESIGNING_DEVELOPPER_ID_APPLICATION \"${CPACK_CODESIGNING_DEVELOPPER_ID_APPLICATION}\")" COMPONENT Unspecified)
3635
install(CODE "set(CPACK_CODESIGNING_MACOS_IDENTIFIER \"${CPACK_CODESIGNING_MACOS_IDENTIFIER}\")" COMPONENT Unspecified)
37-
install(CODE "set(FILES_TO_SIGN \"${FILES_TO_SIGN}\")" COMPONENT Unspecified)
3836
# call the script
3937
install(SCRIPT "${CMAKE_CURRENT_LIST_DIR}/install_codesign_script.cmake" COMPONENT Unspecified)
4038
endif()
@@ -102,226 +100,25 @@ if(NOT CPACK_CODESIGNING_MACOS_IDENTIFIER)
102100
message(FATAL_ERROR "CPACK_CODESIGNING_MACOS_IDENTIFIER is required")
103101
endif()
104102

105-
106-
if(CMAKE_INSTALL_COMPONENT STREQUAL "OpenStudioApp" OR NOT CMAKE_INSTALL_COMPONENT)
107-
list(APPEND FILES_TO_SIGN
108-
EnergyPlus/ExpandObjects
109-
EnergyPlus/energyplus-24.1.0
110-
EnergyPlus/energyplus.1
111-
EnergyPlus/libenergyplusapi.24.1.0.dylib
112-
EnergyPlus/libintl.8.dylib
113-
EnergyPlus/libpython3.8.dylib
114-
Ruby/openstudio.bundle
115-
116-
Radiance/bin/vinfo
117-
Radiance/bin/pcompos
118-
Radiance/bin/dgraph
119-
Radiance/bin/optics2rad
120-
Radiance/bin/pmapdump
121-
Radiance/bin/bsdf2klems
122-
Radiance/bin/gensurf
123-
Radiance/bin/ra_gif
124-
Radiance/bin/xglaresrc
125-
Radiance/bin/histo
126-
Radiance/bin/libxcb.1.dylib
127-
Radiance/bin/ranimate
128-
Radiance/bin/eplus_adduvf
129-
Radiance/bin/glaze
130-
Radiance/bin/rlam
131-
Radiance/bin/neaten
132-
Radiance/bin/oconv
133-
Radiance/bin/normtiff
134-
Radiance/bin/pfilt
135-
Radiance/bin/ltpict.pl
136-
Radiance/bin/rhoptimize
137-
Radiance/bin/mgf2meta
138-
Radiance/bin/ra_bmp
139-
Radiance/bin/genworm
140-
Radiance/bin/gendaylit
141-
Radiance/bin/libXplugin.1.dylib
142-
Radiance/bin/rhcopy
143-
Radiance/bin/igraph
144-
Radiance/bin/wrapBSDF
145-
Radiance/bin/pvalue
146-
Radiance/bin/rcollate
147-
Radiance/bin/genambpos
148-
Radiance/bin/rcalc
149-
Radiance/bin/pinterp
150-
Radiance/bin/obj2mesh
151-
Radiance/bin/pdfblur
152-
Radiance/bin/falsecolor
153-
Radiance/bin/vwright
154-
Radiance/bin/ra_rgbe
155-
Radiance/bin/rfluxmtx
156-
Radiance/bin/libICE.6.dylib
157-
Radiance/bin/fieldcomb
158-
Radiance/bin/rpiece
159-
Radiance/bin/pcwarp
160-
Radiance/bin/3ds2mgf
161-
Radiance/bin/psign
162-
Radiance/bin/libX11.6.dylib
163-
Radiance/bin/bgraph
164-
Radiance/bin/ev
165-
Radiance/bin/genprism
166-
Radiance/bin/vwrays
167-
Radiance/bin/libglapi.0.dylib
168-
Radiance/bin/bsdf2ttree
169-
Radiance/bin/pgblur
170-
Radiance/bin/mgf2inv
171-
Radiance/bin/phisto
172-
Radiance/bin/rhinfo
173-
Radiance/bin/meta2tga
174-
Radiance/bin/ra_tiff
175-
Radiance/bin/trad
176-
Radiance/bin/objpict
177-
Radiance/bin/ies2rad
178-
Radiance/bin/plotin
179-
Radiance/bin/protate
180-
Radiance/bin/plot4
181-
Radiance/bin/replmarks
182-
Radiance/bin/findglare
183-
Radiance/bin/genbox
184-
Radiance/bin/pextrem
185-
Radiance/bin/gensky
186-
Radiance/bin/xform
187-
Radiance/bin/pexpand
188-
Radiance/bin/genBSDF
189-
Radiance/bin/rcontrib
190-
Radiance/bin/ra_hexbit
191-
Radiance/bin/mgf2rad
192-
Radiance/bin/rad2mgf
193-
Radiance/bin/libxcb-glx.0.dylib
194-
Radiance/bin/rtrace
195-
Radiance/bin/rhpict
196-
Radiance/bin/libXfixes.3.dylib
197-
Radiance/bin/getbbox
198-
Radiance/bin/lampcolor
199-
Radiance/bin/cnt
200-
Radiance/bin/ra_xyze
201-
Radiance/bin/total
202-
Radiance/bin/genskyvec
203-
Radiance/bin/epw2wea
204-
Radiance/bin/pmdblur
205-
Radiance/bin/objline
206-
Radiance/bin/ximage
207-
Radiance/bin/libX11-xcb.1.dylib
208-
Radiance/bin/psort
209-
Radiance/bin/pkgBSDF
210-
Radiance/bin/pbilat
211-
Radiance/bin/ttyimage
212-
Radiance/bin/libXdmcp.6.dylib
213-
Radiance/bin/lookamb
214-
Radiance/bin/ra_ppm
215-
Radiance/bin/libXau.6.dylib
216-
Radiance/bin/mkpmap
217-
Radiance/bin/pmblur
218-
Radiance/bin/tmesh2rad
219-
Radiance/bin/rlux
220-
Radiance/bin/psmeta
221-
Radiance/bin/libXext.6.dylib
222-
Radiance/bin/objview
223-
Radiance/bin/libXxf86vm.1.dylib
224-
Radiance/bin/glarendx
225-
Radiance/bin/ra_t8
226-
Radiance/bin/libGL.1.dylib
227-
Radiance/bin/libXdamage.1.dylib
228-
Radiance/bin/raddepend
229-
Radiance/bin/genklemsamp
230-
Radiance/bin/pflip
231-
Radiance/bin/icalc
232-
Radiance/bin/dctimestep
233-
Radiance/bin/ra_ps
234-
Radiance/bin/tabfunc
235-
Radiance/bin/gendaymtx
236-
Radiance/bin/cv
237-
Radiance/bin/rholo
238-
Radiance/bin/mkillum
239-
Radiance/bin/rvu
240-
Radiance/bin/glrad
241-
Radiance/bin/obj2rad
242-
Radiance/bin/pcomb
243-
Radiance/bin/rmtxop
244-
Radiance/bin/genrev
245-
Radiance/bin/pcond
246-
Radiance/bin/libSM.6.dylib
247-
Radiance/bin/evalglare
248-
Radiance/bin/normpat
249-
Radiance/bin/ra_t16
250-
Radiance/bin/meta2bmp
251-
Radiance/bin/rpict
252-
Radiance/bin/libGLU.1.dylib
253-
Radiance/bin/gcomp
254-
Radiance/bin/rsensor
255-
Radiance/bin/compamb
256-
Radiance/bin/getinfo
257-
Radiance/bin/macbethcal
258-
Radiance/bin/xshowtrace
259-
Radiance/bin/ran2tiff
260-
Radiance/bin/ra_pfm
261-
Radiance/bin/ranimove
262-
Radiance/bin/x11meta
263-
Radiance/bin/rad
264-
Radiance/bin/rttree_reduce
265-
Radiance/bin/x11.hdi
266-
Radiance/bin/nff2rad
267-
Radiance/bin/genrhgrid
268-
Radiance/bin/genblinds
269-
Radiance/bin/genclock
270-
Radiance/bin/mksource
271-
Radiance/bin/dayfact
272-
Radiance/bin/mgfilt
273-
Radiance/bin/xyzimage
274-
Radiance/bin/ra_pict
275-
Radiance/bin/glare
276-
Radiance/bin/ltview.pl
277-
Radiance/bin/libz.1.dylib
278-
Radiance/bin/plugins/platforms/libqcocoa.dylib
279-
Radiance/bin/plugins/imageformats/libqgif.dylib
280-
Radiance/bin/plugins/imageformats/libqico.dylib
281-
Radiance/bin/plugins/imageformats/libqjpeg.dylib
282-
Radiance/bin/plugins/imageformats/libqtiff.dylib
283-
Radiance/bin/QtPrintSupport.framework/Versions/5/QtPrintSupport
284-
Radiance/bin/QtGui.framework/Versions/5/QtGui
285-
Radiance/bin/QtCore.framework/Versions/5/QtCore
286-
Radiance/bin/QtWidgets.framework/Versions/5/QtWidgets
287-
)
288-
289-
file(GLOB_RECURSE PYTHON_SOS "${CMAKE_INSTALL_PREFIX}/EnergyPlus/python_standard_lib/**/*.so")
290-
file(GLOB _numpy_dylibs "${CMAKE_INSTALL_PREFIX}/EnergyPlus/python_standard_lib/numpy/.dylibs/*.dylib")
291-
list (APPEND PYTHON_SOS ${_numpy_dylibs})
292-
293-
print_relative_paths(PREFIX "PYTHON_SOS=" ABSOLUTE_PATHS ${PYTHON_SOS})
294-
endif()
295-
296-
if(CMAKE_INSTALL_COMPONENT STREQUAL "Python" OR NOT CMAKE_INSTALL_COMPONENT)
297-
file(GLOB PYTHON_OS_SOS "${CMAKE_INSTALL_PREFIX}/Python/*.so")
298-
print_relative_paths(PREFIX "PYTHON_OS_SOS=" ABSOLUTE_PATHS ${PYTHON_OS_SOS})
299-
endif()
300-
301-
if(CMAKE_INSTALL_COMPONENT STREQUAL "CLI" OR NOT CMAKE_INSTALL_COMPONENT)
302-
list(APPEND FILES_TO_SIGN
303-
lib/libopenstudiolib.dylib
304-
lib/libpythonengine.so
305-
lib/librubyengine.so
306-
bin/install_utility
307-
)
308-
endif()
309-
310103
if(NOT FILES_TO_SIGN)
311104
message(AUTHOR_WARNING "FILES_TO_SIGN is empty")
312105
else()
313106
foreach(path ${FILES_TO_SIGN})
314-
list(APPEND FULL_PATHS "${CMAKE_INSTALL_PREFIX}/${path}")
107+
list(APPEND _FULL_PATHS "${CMAKE_INSTALL_PREFIX}/${path}")
315108
endforeach()
316-
print_relative_paths(PREFIX "FULL_PATHS=" ABSOLUTE_PATHS ${FULL_PATHS})
109+
print_relative_paths(PREFIX "FULL_PATHS=" ABSOLUTE_PATHS ${_FULL_PATHS})
317110
endif()
318111

319112
include(${CMAKE_CURRENT_LIST_DIR}/CodeSigning.cmake)
320113
codesign_files_macos(
321-
FILES ${FULL_PATHS} ${PYTHON_SOS} ${PYTHON_OS_SOS}
114+
FILES ${_FULL_PATHS}
322115
SIGNING_IDENTITY ${CPACK_CODESIGNING_DEVELOPPER_ID_APPLICATION}
323116
PREFIX "${CPACK_CODESIGNING_MACOS_IDENTIFIER}."
324117
FORCE VERBOSE
325118
)
326119

120+
# Clean up to avoid multiple passes (several components) appending to a pre-existing list
121+
unset(FILES_TO_SIGN)
122+
unset(_FULL_PATHS)
123+
327124
message("Finished Codesigning inner executables and library")

0 commit comments

Comments
 (0)