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

Support parallel builds with make #491

Merged
merged 13 commits into from
Dec 13, 2023
25 changes: 19 additions & 6 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,24 @@ function(command_arguments PROPNAME)
set(${PROPNAME} ${quoted_args} PARENT_SCOPE)
endfunction()

# Helper function for concatenating several files
function(sleef_concat_files)
cmake_parse_arguments(concat_required "" "OUTPUT" "SOURCES" ${ARGN})
if("${concat_required_OUTPUT}" STREQUAL "")
message(FATAL_ERROR "Must pass OUTPUT to sleef_concat_files")
endif()

if(NOT concat_required_SOURCES)
message(FATAL_ERROR "sleef_concat_files not passed any SOURCES")
endif()

add_custom_command(
OUTPUT ${concat_required_OUTPUT}
COMMAND ${CMAKE_COMMAND} -E cat ${concat_required_SOURCES} > ${concat_required_OUTPUT}
DEPENDS ${concat_required_SOURCES}
COMMAND_EXPAND_LISTS)
endfunction()

# Settings

set(SLEEF_ALL_SUPPORTED_EXTENSIONS
Expand Down Expand Up @@ -94,7 +112,7 @@ set(COSTOVERRIDE_RVVM2NOFMA 20)

#

cmake_minimum_required(VERSION 3.4.3)
cmake_minimum_required(VERSION 3.18)

if(${CMAKE_VERSION} VERSION_GREATER "3.14.99")
cmake_policy(SET CMP0091 NEW)
Expand Down Expand Up @@ -318,8 +336,3 @@ if(SLEEF_SHOW_CONFIG)
endif()
endif(SLEEF_SHOW_CONFIG)

if (NOT CMAKE_MAKE_PROGRAM MATCHES "ninja")
message("")
message("*** Note: Parallel build is only supported with Ninja ***")
message("")
endif()
4 changes: 2 additions & 2 deletions doc/build-with-cmake.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,14 @@ Before using CMake you will need to install/build the binaries on your system.
Most systems have cmake already installed or provided by the standard package
manager. If that is not the case for you, please
[download](https://cmake.org/download/) and install now.
For building SLEEF, version 3.4.3 is the minimum required.
For building SLEEF, version 3.18 is the minimum required.

# Quick start

1. Make sure cmake is available on the command-line.
```
$ cmake --version
(should display a version number greater than or equal to 3.4.3)
(should display a version number greater than or equal to 3.18)
```

2. Download the tar from the
Expand Down
4 changes: 0 additions & 4 deletions doc/html/compile.xhtml
Original file line number Diff line number Diff line change
Expand Up @@ -236,10 +236,6 @@ $ make test
$ sudo make install</pre>
</p>

<p>
<b style="color:red">Parallel build is only supported with Ninja.</b>
</p>

<br/>

<p>
Expand Down
Loading