From 6dda4098e76eb04ff44609bc81faceddeea1ba4e Mon Sep 17 00:00:00 2001 From: Nikita Kniazev Date: Wed, 4 Aug 2021 04:22:23 +0300 Subject: [PATCH] Unify Clang and GCC PCH creation (#70) Clang has GCC-compatible PCH generation interface, no need to override and re-implement PCH generation in Clang at all. --- src/tools/clang-darwin.jam | 10 ---------- src/tools/clang-linux.jam | 13 ------------- src/tools/gcc.jam | 4 ++-- 3 files changed, 2 insertions(+), 25 deletions(-) diff --git a/src/tools/clang-darwin.jam b/src/tools/clang-darwin.jam index 6e20e1c02..a2f880d13 100644 --- a/src/tools/clang-darwin.jam +++ b/src/tools/clang-darwin.jam @@ -124,16 +124,6 @@ actions compile.c++ bind PCH_FILE "$(CONFIG_COMMAND)" -x c++ $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" $(.include-pch)"$(PCH_FILE)" -c -o "$(<)" "$(>)" } -actions compile.c.pch -{ - "$(CONFIG_COMMAND)" -x c-header $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -o "$(<)" "$(>)" -} - -actions compile.c++.pch -{ - "$(CONFIG_COMMAND)" -c -x c++-header $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -o "$(<)" "$(>)" -} - # Declare actions for linking rule link ( targets * : sources * : properties * ) { diff --git a/src/tools/clang-linux.jam b/src/tools/clang-linux.jam index d6bf0250a..949e2772b 100644 --- a/src/tools/clang-linux.jam +++ b/src/tools/clang-linux.jam @@ -170,19 +170,6 @@ actions compile.c bind PCH_FILE "$(CONFIG_COMMAND)" -c -x c $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -Xclang$(_)-include-pch$(_)-Xclang$(_)"$(PCH_FILE)" -include"$(FORCE_INCLUDES)" -c -o "$(<)" "$(>)" } -############################################################################### -# PCH emission - -actions compile.c++.pch -{ - "$(CONFIG_COMMAND)" -c -x c++-header $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" -Xclang -emit-pch -o "$(<)" "$(>)" -} - -actions compile.c.pch -{ - "$(CONFIG_COMMAND)" -c -x c-header $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" -Xclang -emit-pch -o "$(<)" "$(>)" -} - ############################################################################### # Linking diff --git a/src/tools/gcc.jam b/src/tools/gcc.jam index d91caa791..68f59479f 100644 --- a/src/tools/gcc.jam +++ b/src/tools/gcc.jam @@ -608,12 +608,12 @@ toolset.flags gcc.compile PCH_FILE on : ; actions compile.c++.pch { - "$(CONFIG_COMMAND)" -x c++-header $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -c -o "$(<)" "$(>)" + "$(CONFIG_COMMAND)" -x c++-header $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" -c -o "$(<)" "$(>)" } actions compile.c.pch { - "$(CONFIG_COMMAND)" -x c-header $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -c -o "$(<)" "$(>)" + "$(CONFIG_COMMAND)" -x c-header $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" -c -o "$(<)" "$(>)" } ###