setup-cpp
setup-cpp copied to clipboard
Add linker tools
Tasks
- [ ]
lldcan be easily added as it is already supported. We just need to add a CLI and actions option for it. It should be treated the same asclangtidy, etc. - [ ] mold
- [ ] sold
- [ ] gold
Description
Hi,
I was using setup-cpp with project_options (in my docker build) and custemize the linker option, see find_linker.
Would be nice to install mold or one of the other (better) Linker, rather then (gcc) ld or gold.
Improving C++ Compilation Times: Tools & Techniques - Vittorio Romeo - ACCU 2023
So install (?) ...
-
mold(e.g. whencompilerisgcc) -
lldwhencompilerisllvm(default) -
soldfor Mac OS - windows: ???
npx setup-cpp --compiler gcc --linker mold --cmake true --ninja true --ccache true --vcpkg true
More Context
I was getting this Error: /usr/bin/ld.gold: separate-code: unknown -z option.
CMakeOptions.cmake
find_linker(PROJECT_OPTIONS_LINKER)
MESSAGE(STATUS "Use Linker: ${PROJECT_OPTIONS_LINKER}")
project_options(
...
LINKER
${PROJECT_OPTIONS_LINKER})
Compiler found: /usr/bin/g++-13
Use Linker: gold
After that I just installed mold and everything works:
RUN apt-get update -qq && \
# install nodejs
apt-get install -y --no-install-recommends nodejs npm && \
# install setup-cpp
npm install -g [email protected] && \
# install the compiler and tools
setup-cpp \
--nala true \
--compiler ${compiler} \
--cmake true \
--ninja true \
--task true \
--vcpkg true \
--cppcheck true \
--gcovr true \
--doxygen true \
--ccache true && \
# install custom linker
apt-get install -y --no-install-recommends mold && \
# cleanup
nala autoremove -y && \
nala autopurge -y && \
apt-get clean && \
nala clean --lists && \
rm -rf /var/lib/apt/lists/* && \
rm -rf /tmp/*