hercules-390 / hyperion

Hercules 390
Other
246 stars 69 forks source link

CMake cannot be used to build SoftFloat-3a using Ninja as part of the Hyperion build on BSD-based systems. #268

Open srorso opened 5 years ago

srorso commented 5 years ago

When using CMake to configure the build scripts for Hyperion under the following circumstances, the build scripts fail:

  1. The Ninja build tool is used to run the scripts (Ninja is specified as the CMake generator).
  2. The build scripts are created on a BSD-based system including macOS.
  3. The build scripts are expected to build SoftFloat-3a as part of the Hyperion build, i.e., a SoftFloat-3a build or install directory was not provided via -DS3FH_DIR= on the CMake command line.

Under the above circumstances, the CMake configure step completes successfully and the build step (Ninja) fails with the following message:

ninja: error: '<build_dir>/extpkg/SoftFloat-3a/build/libSoftFloat.a', needed by 'hercules', missing and no known rule to make it

When using the Makefiles generator, the configure and build steps complete successfully and all tests run without error. When SoftFloat-3a is built separately using Ninja and the resulting build directory is provided to CMake via -DS3FH_DIR, Ninja builds Hyperion successfully using the created scripts and all tests run without error.