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

Boost 1.79.0 errors using Xcode 15.3: upgrade to 1.84.0+ #5229

Open
jmarrec opened this issue Jul 15, 2024 · 1 comment
Open

Boost 1.79.0 errors using Xcode 15.3: upgrade to 1.84.0+ #5229

jmarrec opened this issue Jul 15, 2024 · 1 comment
Labels
component - Conan Dependency / Package manager problems Developer Issue

Comments

@jmarrec
Copy link
Collaborator

jmarrec commented Jul 15, 2024

Issue overview

Current Behavior

Every new compiler version out there removes deprecated stuff from C++ STD lib, and this is especially true on Xcode / clang.

We're having to define some macros when building via conan -c tools.build:cxxflags="['-D_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION']" and some more inside our cmake.

OpenStudio/CMakeLists.txt

Lines 377 to 385 in ba1b94b

if(APPLE)
# Without this, cmake will give "Module" libraries the ".so" extension on Apple
# This appears to be a legacy choice by the cmake developers, and seems out of place,
# so the OpenStudio project will use the library suffix ".dylib"
find_library(COREFOUNDATION_LIBRARY CoreFoundation)
# TODO: remove when bumping Boost to 1.81+, cf https://github.com/NREL/OpenStudio/issues/4978
add_definitions(-DBOOST_NO_CXX98_FUNCTION_BASE)
add_definitions(-D_HAS_AUTO_PTR_ETC=0)
endif()

Expected Behavior

Steps to Reproduce

Update to xcode 15.3 or 15.4

 In file included from ./boost/unordered/detail/implementation.hpp:48:
./boost/unordered/detail/fwd.hpp:53:16: error: no member named 'piecewise_construct' in namespace 'std'; did you mean 'piecewise_construct_t'?
    using std::piecewise_construct;
          ~~~~~^~~~~~~~~~~~~~~~~~~
               piecewise_construct_t
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.5.sdk/usr/include/c++/v1/__utility/piecewise_construct.h:20:29: note: 'piecewise_construct_t' declared here
struct _LIBCPP_TEMPLATE_VIS piecewise_construct_t { explicit piecewise_construct_t() = default; };

https://github.com/openstudiocoalition/OpenStudioApplication/actions/runs/9923938518/job/27414679234#step:17:5403

Possible Solution

Upgrade to a more recent boost, 1.85.0 right now

Details

Environment

Some additional details about your environment for this issue (if relevant):

  • Platform (Operating system, version): all, but especially mac
  • Version of OpenStudio (if using an intermediate build, include SHA): ba1b94b

Context

Found after upgrading compiler on an arm mac.

@jmarrec
Copy link
Collaborator Author

jmarrec commented Oct 30, 2024

Nowadays with Xcode Apple Clang 16 (or clang 18) I even have to add another one:

-c tools.build:cxxflags="['-D_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION -Wno-enum-constexpr-conversion'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component - Conan Dependency / Package manager problems Developer Issue
Projects
None yet
Development

No branches or pull requests

1 participant