Opened 5 years ago

#59489 assigned defect

ALPSMaxent: The C++ compiler used to build your project should exactly match the C++ compiler that was used to build ALPSCore

Reported by: ryandesign (Ryan Carsten Schmidt) Owned by: egull
Priority: Normal Milestone:
Component: ports Version: 2.6.2
Keywords: Cc: galexv
Port: ALPSMaxent

Description

Building ALPSMaxent fails:

CMake Warning at /opt/local/share/ALPSCore/ALPSCoreConfig.cmake:129 (message):
  The C++ compiler used to build your project should exactly match the C++
  compiler that was used to build ALPSCore.

   ALPSCore C++ compiler ID: AppleClang
   ALPSCore C++ compiler version: 10.0.0.10001145
   Current C++ compiler ID: AppleClang
   Current C++ compiler version: 10.0.1.10010046
   Current C++ compiler: /usr/bin/clang++
Call Stack (most recent call first):
  CMakeLists.txt:5 (find_package)


CMake Error at /opt/local/share/cmake-3.15/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
  Could NOT find ALPSCore (missing: ALPSCore_LIBRARIES
  ALPSCore_COMPILER_MATCH)
Call Stack (most recent call first):
  /opt/local/share/cmake-3.15/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
  /opt/local/share/ALPSCore/ALPSCoreConfig.cmake:149 (find_package_handle_standard_args)
  CMakeLists.txt:5 (find_package)


-- Configuring incomplete, errors occurred!

The requirement that "The C++ compiler used to build your project should exactly match the C++ compiler that was used to build ALPSCore" is kind of impossible to enforce in MacPorts, since there might be a difference in Xcode (and therefore clang) version between a user's system and our build server, and also because Xcode/clang might get updated on a user's system or on our build server and MacPorts has no way to know when that has occurred to force certain ports to rebuild at that time. So it is a design flaw for ALPSMaxent to impose this requirement.

If this requirement absolutely cannot be avoided, then possible solutions are:

  1. Force ALPSCore and ALPSMaxent to use a MacPorts compiler by setting it in compiler.whitelist. And notice whenever that MacPorts compiler's version gets updated and revbump ALPSCore and ALPSMaxent each time to rebuild them. Or:
  2. Combine ALPSCore and ALPSMaxent into a single port so that they always are built at the same time with the same compiler.

Change History (0)

Note: See TracTickets for help on using tickets.