Skip to content

Commit 548a1b9

Browse files
authored
Merge pull request #191 from dgrove-oss/swiftc-rule-cleanup
Avoid invoking swiftc -front-end when building Dispatch overlay
2 parents 92773e0 + 2cbf5bb commit 548a1b9

File tree

1 file changed

+13
-28
lines changed

1 file changed

+13
-28
lines changed

src/Makefile.am

Lines changed: 13 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,18 @@ SWIFT_SRC_FILES=\
146146
swift/Wrapper.swift
147147

148148
SWIFT_ABS_SRC_FILES = $(SWIFT_SRC_FILES:%=$(abs_srcdir)/%)
149-
SWIFT_OBJ_FILES = $(SWIFT_SRC_FILES:%.swift=$(abs_builddir)/%.o)
149+
SWIFT_OBJ_FILES = $(abs_builddir)/swift/swift_overlay.o
150+
151+
SWIFTC_FLAGS = -Xcc -fmodule-map-file=$(abs_top_srcdir)/dispatch/module.modulemap -I$(abs_top_srcdir) -Xcc -fblocks
152+
if DISPATCH_ENABLE_OPTIMIZATION
153+
SWIFTC_FLAGS+=-O
154+
endif
155+
156+
$(abs_builddir)/swift/swift_overlay.o: $(SWIFT_ABS_SRC_FILES) $(SWIFTC)
157+
@rm -f $@
158+
$(SWIFTC) -whole-module-optimization -emit-library -c $(SWIFT_ABS_SRC_FILES) \
159+
$(SWIFTC_FLAGS) -module-name Dispatch -module-link-name dispatch \
160+
-o $@ -emit-module-path $(abs_builddir)/swift/Dispatch.swiftmodule
150161

151162
libdispatch_la_SOURCES+=swift/DispatchStubs.cc
152163
EXTRA_libdispatch_la_SOURCES+=$(SWIFT_SRC_FILES)
@@ -157,38 +168,12 @@ libdispatch_la_LIBADD+=$(SWIFT_OBJ_FILES)
157168
SWIFT_GEN_FILES= \
158169
$(abs_builddir)/swift/Dispatch.swiftmodule \
159170
$(abs_builddir)/swift/Dispatch.swiftdoc \
160-
$(SWIFT_OBJ_FILES) \
161-
$(SWIFT_OBJ_FILES:%=%.d) \
162-
$(SWIFT_OBJ_FILES:%=%.swiftdeps) \
163-
$(SWIFT_OBJ_FILES:%=%.~partial.swiftmodule) \
164-
$(SWIFT_OBJ_FILES:%=%.~partial.swiftdoc) \
165-
$(SWIFT_OBJ_FILES:%=%.~partial.swiftdeps)
166-
167-
SWIFTC_FLAGS = -Xcc -fmodule-map-file=$(abs_top_srcdir)/dispatch/module.modulemap -I$(abs_top_srcdir) -Xcc -fblocks
168-
if DISPATCH_ENABLE_OPTIMIZATION
169-
SWIFTC_FLAGS+=-O
170-
endif
171-
172-
$(abs_builddir)/swift/%.o: $(abs_srcdir)/swift/%.swift $(SWIFTC)
173-
@rm -f $@
174-
$(SWIFTC) -frontend -c $(SWIFT_ABS_SRC_FILES) -primary-file $< \
175-
$(SWIFTC_FLAGS) -module-name Dispatch -module-link-name dispatch \
176-
-o $@ -emit-module-path $@.~partial.swiftmodule \
177-
-emit-module-doc-path $@.~partial.swiftdoc -emit-dependencies-path $@.d \
178-
-emit-reference-dependencies-path $@.swiftdeps \
179-
-module-cache-path $(top_builddir)
180-
181-
$(abs_builddir)/swift/Dispatch.swiftmodule: $(SWIFT_ABS_SRC_FILES) $(SWIFTC)
182-
@rm -f $@
183-
$(SWIFTC) -frontend -emit-module $(SWIFT_OBJ_FILES:%=%.~partial.swiftmodule) \
184-
$(SWIFTC_FLAGS) -module-cache-path $(top_builddir) -module-link-name dispatch \
185-
-o $@ -emit-module-doc-path $(@:%.swiftmodule=%.swiftdoc)
171+
$(SWIFT_OBJ_FILES)
186172

187173
swiftmoddir=${prefix}/lib/swift/linux/${build_cpu}
188174
swiftmod_HEADERS=\
189175
$(abs_builddir)/swift/Dispatch.swiftmodule \
190176
$(abs_builddir)/swift/Dispatch.swiftdoc
191-
192177
endif
193178

194179
BUILT_SOURCES=$(MIG_SOURCES) $(DTRACE_SOURCES)

0 commit comments

Comments
 (0)