Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bump openstudio-gems, conan-openstudio-ruby and add support for Apple M1 #4518

Merged
merged 9 commits into from
Jan 19, 2022
55 changes: 39 additions & 16 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -541,7 +541,15 @@ endif()
# If Linux, check LSB_RELEASE globally so we can use it after
# But also infer the new E+ package names (starting at 9.4.0)
if(APPLE)
set(ENERGYPLUS_SYSTEM_VERSION "-macOS10.15")

set(ENERGYPLUS_SYSTEM_VERSION "")

find_program(UNAME uname)
execute_process(COMMAND ${UNAME} -m
OUTPUT_VARIABLE ARCH
OUTPUT_STRIP_TRAILING_WHITESPACE
)

elseif(UNIX)
# OS_RELEASE is the result of `uname -r` which is unhelpful (eg '5.4.0-42-generic')
find_program(LSB_RELEASE lsb_release)
Expand Down Expand Up @@ -571,8 +579,13 @@ endif()

if(UNIX)
if(APPLE)
set(ENERGYPLUS_EXPECTED_HASH e330eb7b658cb0987d4fee27cf956659)
set(ENERGYPLUS_PLATFORM "Darwin${ENERGYPLUS_SYSTEM_VERSION}-x86_64")
if (ARCH MATCHES "arm64")
set(ENERGYPLUS_EXPECTED_HASH 104a0c77e4e60a457e295f9d7591d7ad)
set(ENERGYPLUS_PLATFORM "Darwin-macOS11.2-arm64")
else()
set(ENERGYPLUS_EXPECTED_HASH e330eb7b658cb0987d4fee27cf956659)
set(ENERGYPLUS_PLATFORM "Darwin-macOS10.15-x86_64")
endif()
elseif(EXISTS "/etc/redhat-release")
# TODO: There aren't any redhat releases anymore, see PR #3145 too
set(ENERGYPLUS_EXPECTED_HASH DOES_NOT_EXIST_02ed618aab65bf46c96bf1faf2e1905b)
Expand Down Expand Up @@ -759,30 +772,32 @@ if(BUILD_CLI)
set(OPENSTUDIO_GEMS_BASEURL "http://openstudio-resources.s3.amazonaws.com/dependencies")

# To use the package produced by a PR to https://github.com/NREL/openstudio-gems
set(USE_OPENSTUDIO_GEMS_PR TRUE)
set(USE_OPENSTUDIO_GEMS_PR FALSE)
if (USE_OPENSTUDIO_GEMS_PR)
set(OPENSTUDIO_GEMS_BASEURL "http://openstudio-sdk-dependencies.s3.amazonaws.com/openstudio-gems")
set(OPENSTUDIO_GEMS_PR_NUMBER "PR-51")
endif()

if(UNIX)
if(APPLE)
set(OPENSTUDIO_GEMS_ZIP_FILENAME "openstudio3-gems-20211117-darwin.tar.gz")
set(OPENSTUDIO_GEMS_ZIP_EXPECTED_MD5 "2a5d7d25e79f9c7a791adfe7e9fa699d")
if (USE_OPENSTUDIO_GEMS_PR)
set(OPENSTUDIO_GEMS_BASEURL "${OPENSTUDIO_GEMS_BASEURL}/openstudio-gems-osx/${OPENSTUDIO_GEMS_PR_NUMBER}")
if (ARCH MATCHES arm64)
set(OPENSTUDIO_GEMS_ZIP_FILENAME "openstudio3-gems-20220106-darwin_arm64.tar.gz")
set(OPENSTUDIO_GEMS_ZIP_EXPECTED_MD5 "95dfe2860340966607ecda384a374d86")
else()
set(OPENSTUDIO_GEMS_ZIP_FILENAME "openstudio3-gems-20220106-darwin.tar.gz")
set(OPENSTUDIO_GEMS_ZIP_EXPECTED_MD5 "4f68b906e40cb34146da13e8d3e07910")
endif()
else()
set(OPENSTUDIO_GEMS_ZIP_FILENAME "openstudio3-gems-20211117-linux.tar.gz")
set(OPENSTUDIO_GEMS_ZIP_EXPECTED_MD5 "86adc1d50d28bf2f197bbf4167aaa689")
set(OPENSTUDIO_GEMS_ZIP_FILENAME "openstudio3-gems-20220106-linux.tar.gz")
set(OPENSTUDIO_GEMS_ZIP_EXPECTED_MD5 "c5f7a580ec3fa753ca012dbd9e6cc589")
if (USE_OPENSTUDIO_GEMS_PR)
set(OPENSTUDIO_GEMS_BASEURL "${OPENSTUDIO_GEMS_BASEURL}/openstudio-gems-linux/${OPENSTUDIO_GEMS_PR_NUMBER}")
endif()
endif()
elseif(WIN32)
# OpenStudio gems are only supported on 64 bit windows
set(OPENSTUDIO_GEMS_ZIP_FILENAME "openstudio3-gems-20211117-windows.tar.gz")
set(OPENSTUDIO_GEMS_ZIP_EXPECTED_MD5 "1822f2fee9517b134c0ba868f8b31f43")
set(OPENSTUDIO_GEMS_ZIP_FILENAME "openstudio3-gems-20220106-windows.tar.gz")
set(OPENSTUDIO_GEMS_ZIP_EXPECTED_MD5 "ce80035dcc1cb74b0048c6aba22d6c2c")
if (USE_OPENSTUDIO_GEMS_PR)
set(OPENSTUDIO_GEMS_BASEURL "${OPENSTUDIO_GEMS_BASEURL}/openstudio-gems-windows/${OPENSTUDIO_GEMS_PR_NUMBER}")
endif()
Expand Down Expand Up @@ -1310,9 +1325,15 @@ install(DIRECTORY "${ENERGYPLUS_DIR}/pyenergyplus" DESTINATION ./EnergyPlus/ COM

if(APPLE)
install(PROGRAMS "${ENERGYPLUS_DIR}/libgfortran.5.dylib" DESTINATION ./EnergyPlus/ COMPONENT EnergyPlus)
install(PROGRAMS "${ENERGYPLUS_DIR}/libquadmath.0.dylib" DESTINATION ./EnergyPlus/ COMPONENT EnergyPlus)
install(PROGRAMS "${ENERGYPLUS_DIR}/libgcc_s.1.dylib" DESTINATION ./EnergyPlus/ COMPONENT EnergyPlus)
install(PROGRAMS "${ENERGYPLUS_DIR}/Python" DESTINATION ./EnergyPlus/ COMPONENT EnergyPlus)
if (ARCH MATCHES arm64)
install(PROGRAMS "${ENERGYPLUS_DIR}/libpython3.9.dylib" DESTINATION ./EnergyPlus/ COMPONENT EnergyPlus)
install(PROGRAMS "${ENERGYPLUS_DIR}/libgcc_s.1.1.dylib" DESTINATION ./EnergyPlus/ COMPONENT EnergyPlus)
# TODO: quadmath / intl?
else()
install(PROGRAMS "${ENERGYPLUS_DIR}/libquadmath.0.dylib" DESTINATION ./EnergyPlus/ COMPONENT EnergyPlus)
install(PROGRAMS "${ENERGYPLUS_DIR}/libgcc_s.1.dylib" DESTINATION ./EnergyPlus/ COMPONENT EnergyPlus)
endif()
#install(PROGRAMS "${ENERGYPLUS_DIR}/Python" DESTINATION ./EnergyPlus/ COMPONENT EnergyPlus)
file(GLOB ENERGYPLUS_PYTHON_LIBS "${ENERGYPLUS_DIR}/libpython*")
foreach(python_lib IN LISTS ENERGYPLUS_PYTHON_LIBS)
install(PROGRAMS "${python_lib}" DESTINATION ./EnergyPlus/ COMPONENT EnergyPlus)
Expand Down Expand Up @@ -1363,7 +1384,9 @@ if(BUILD_PAT AND APPLE)
install(PROGRAMS ${ENERGYPLUS_LIB_FILES} DESTINATION ./ParametricAnalysisTool.app/Contents/Resources/EnergyPlus/ COMPONENT PAT)
install(PROGRAMS "${EXPAND_OBJECTS}" DESTINATION ./ParametricAnalysisTool.app/Contents/Resources/EnergyPlus/ COMPONENT PAT)
install(PROGRAMS "${ENERGYPLUS_DIR}/libgfortran.5.dylib" DESTINATION ./ParametricAnalysisTool.app/Contents/Resources/EnergyPlus/ COMPONENT PAT)
install(PROGRAMS "${ENERGYPLUS_DIR}/libquadmath.0.dylib" DESTINATION ./ParametricAnalysisTool.app/Contents/Resources/EnergyPlus/ COMPONENT PAT)
if (NOT ARCH MATCHES arm64)
install(PROGRAMS "${ENERGYPLUS_DIR}/libquadmath.0.dylib" DESTINATION ./ParametricAnalysisTool.app/Contents/Resources/EnergyPlus/ COMPONENT PAT)
endif()
install(DIRECTORY "${PROJECT_BINARY_DIR}/${RADIANCE_PATH}/usr/local/radiance/" DESTINATION ./ParametricAnalysisTool.app/Contents/Resources/Radiance/ COMPONENT PAT USE_SOURCE_PERMISSIONS)
endif()

Expand Down
8 changes: 4 additions & 4 deletions ConanInstall.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ if(NOT CONAN_OPENSTUDIO_ALREADY_RUN)

include(${CMAKE_BINARY_DIR}/conan.cmake)

conan_check(VERSION 1.28.0 REQUIRED)
conan_check(VERSION 1.43.0 REQUIRED)

message(STATUS "openstudio: RUNNING CONAN")

Expand Down Expand Up @@ -51,7 +51,6 @@ if(NOT CONAN_OPENSTUDIO_ALREADY_RUN)
execute_process(COMMAND ${CONAN_CMD} config set general.revisions_enabled=True)
endif()

list(APPEND CONAN_OPTIONS "zlib:minizip=True")
# TODO: list(APPEND CONAN_OPTIONS "fmt:header_only=True")

# You do want to rebuild packages if there's a newer recipe in the remote (which applies mostly to our own openstudio_ruby where we don't
Expand All @@ -68,7 +67,7 @@ if(NOT CONAN_OPENSTUDIO_ALREADY_RUN)

if(BUILD_RUBY_BINDINGS OR BUILD_CLI)
# Track NREL/stable in general, on a feature branch this could be temporarily switched to NREL/testing
set(CONAN_RUBY "openstudio_ruby/2.7.2@nrel/testing#6eb6dc4e0a3af9651279d3dc6121945a")
set(CONAN_RUBY "openstudio_ruby/2.7.2@nrel/stable#c32f3c58530990684fdd9510bef676a3")
endif()

if(BUILD_BENCHMARK)
Expand All @@ -84,7 +83,8 @@ if(NOT CONAN_OPENSTUDIO_ALREADY_RUN)
"boost/1.73.0#4129a76c9b83c300fc103e36d1908792"
"pugixml/1.10#64b3ebc897bb9d9854c8a2443bf112a8"
"jsoncpp/1.9.3#073a6d3cb40911d7c8027bddb6ae7dbf"
"zlib/1.2.11#0df31fd24179543f5720ec7beb2a88d7"
"minizip/1.2.11#0658b664480f2a0755b88502743d5d0d" # This depends on zlib/1.2.11, and basically patches it
"zlib/1.2.11#683857dbd5377d65f26795d4023858f9" # Also needed, so we can find zlib.h and co (+ pinning exactly is good)
"fmt/7.0.1#0580b1492b1dddb43b1768e68f25c43c"
"sqlite3/3.32.3#914492672c458f8be511e3800c14c717"
"cpprestsdk/2.10.16#d097ff9a8719d9d0ed34293c2ebd90ed"
Expand Down
1 change: 1 addition & 0 deletions src/utilities/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -399,6 +399,7 @@ set(${target_name}_swig_src
set(${target_name}_depends
CONAN_PKG::sqlite3
CONAN_PKG::jsoncpp
CONAN_PKG::minizip
CONAN_PKG::zlib
CONAN_PKG::fmt
CONAN_PKG::pugixml
Expand Down
2 changes: 1 addition & 1 deletion src/utilities/core/UnzipFile.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
***********************************************************************************************************************/

#include "UnzipFile.hpp"
#include <unzip.h>
#include <minizip/unzip.h>

namespace openstudio {

Expand Down
2 changes: 1 addition & 1 deletion src/utilities/core/ZipFile.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
#include "ZipFile.hpp"
#include "FilesystemHelpers.hpp"

#include <zip.h>
#include <minizip/zip.h>

namespace openstudio {

Expand Down