Skip to content

Commit 3596e50

Browse files
tomballcopybara-github
authored andcommitted
Updates open-source build to generate frameworks for "make dist", instead of just libraries.
PiperOrigin-RevId: 441596919
1 parent a20bc17 commit 3596e50

File tree

12 files changed

+94
-81
lines changed

12 files changed

+94
-81
lines changed

Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -133,5 +133,5 @@ print_environment:
133133
@echo `xcodebuild -version`
134134
@echo `xcrun cc -v`
135135
@echo Environment:
136-
@env | grep -v '^_' | sort
136+
@env | grep -v '^_' | grep -v '^[ }]' | grep -v '^rvm_' | sort
137137
@echo

guava/Makefile

+3-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,9 @@ clean_jre:
2323
clean_android:
2424
@$(MAKE) -C android -f android.mk clean
2525

26-
dist: dist_jre dist_android
26+
dist: framework
27+
28+
lib: dist_jre dist_android
2729
@:
2830

2931
dist_jre:

guava/common.mk

+1-1
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ DIST_GUAVA_INCLUDE_DIR = $(GUAVA_INCLUDE_DIR)
8383
DIST_HEADERS = $(JAVA_SOURCES:$(JAVA_SRC_DIR)/%.java=$(DIST_GUAVA_INCLUDE_DIR)/%.h)
8484
DIST_JAR = $(GUAVA_DIST_JAR)
8585

86-
dist: $(FAT_LIBS_DIST) $(DIST_JAR) $(DIST_HEADERS)
86+
lib: $(FAT_LIBS_DIST) $(DIST_JAR) $(DIST_HEADERS)
8787

8888
clean:
8989
@rm -rf $(BUILD_DIR) $(FAT_LIBS_DIST) $(DIST_GUAVA_INCLUDE_DIR) $(DIST_JAR)

inject/javax_inject/Makefile

+5-5
Original file line numberDiff line numberDiff line change
@@ -53,13 +53,11 @@ include $(J2OBJC_ROOT)/make/framework.mk
5353
JSR330_LICENSE = LICENSE
5454
JSR330_LICENSE_DIST = $(DIST_LICENSE_DIR)/jsr330_license.txt
5555

56-
default: lib
56+
default: $(FAT_LIBS)
57+
@:
5758

5859
java: jar
5960

60-
lib: $(FAT_LIBS)
61-
@:
62-
6361
$(BUILD_DIR)/.extracted: $(INJECT_SRC_JAR) | $(BUILD_DIR)
6462
@mkdir -p $(JAVA_SRC_DIR)
6563
@unzip -q -o -d $(JAVA_SRC_DIR) $(INJECT_SRC_JAR) $(JAVA_SOURCES)
@@ -103,4 +101,6 @@ clean:
103101
@rm -rf $(ARCH_INCLUDE_DIR)/javax/inject
104102
@rm -rf $(FRAMEWORK_DIR)
105103

106-
dist: $(FAT_LIBS_DIST) $(ARCH_HEADERS) $(JSR330_LICENSE_DIST)
104+
dist: framework
105+
106+
lib: $(FAT_LIBS_DIST) $(ARCH_HEADERS) $(JSR330_LICENSE_DIST)

jre_emul/Makefile

+3-1
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,9 @@ clean:
189189
@rm -rf $(FRAMEWORK_DIR)
190190
@$(MAKE) -f java.mk clean
191191

192-
dist: jre_emul_jars_dist libs_dist $(DIST_DIR)/j2objcc licenses
192+
dist: framework
193+
194+
lib: jre_emul_jars_dist libs_dist $(DIST_DIR)/j2objcc licenses
193195

194196
jars_dist: jre_emul_jars_dist
195197

jsr305/Makefile

+3-1
Original file line numberDiff line numberDiff line change
@@ -137,4 +137,6 @@ clean:
137137
@rm -rf $(JSR305_LICENSE_DIST) $(ARCH_INCLUDE_DIR)/javax/annotation
138138
@rm -rf $(FRAMEWORK_DIR)
139139

140-
dist: $(FAT_LIBS_DIST) $(ARCH_HEADERS) $(JSR305_LICENSE_DIST)
140+
dist: framework
141+
142+
lib: $(FAT_LIBS_DIST) $(ARCH_HEADERS) $(JSR305_LICENSE_DIST)

junit/Makefile

+3-4
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,6 @@ fat_lib_dependencies: jre_emul_dist
5858
java: $(JUNIT_DIST_JAR)
5959
@:
6060

61-
lib: $(FAT_LIBS)
62-
@:
63-
6461
$(BUILD_DIR)/.extracted: $(JUNIT_SRC_JAR) $(JUNIT_DATAPROVIDER_SRC_JAR) $(HAMCREST_SRC_JAR)
6562
@echo extracting sources
6663
@mkdir -p $(JAVA_SRC_DIR)
@@ -110,7 +107,9 @@ clean:
110107
@rm -rf $(ARCH_INCLUDE_DIR)/junit $(ARCH_INCLUDE_DIR)/org/junit
111108
@rm -rf $(FRAMEWORK_DIR)
112109

113-
dist: lib $(FAT_LIBS_DIST) $(ARCH_HEADERS) $(JUNIT_LICENSE_DIST)
110+
dist: framework
111+
112+
lib: $(FAT_LIBS) $(FAT_LIBS_DIST) $(ARCH_HEADERS) $(JUNIT_LICENSE_DIST)
114113

115114
# This is currently broken. The hamcrest source can't compile with 1.8 and the included JRE sources
116115
# can't compile with < 1.8.

make/framework.mk

+24-27
Original file line numberDiff line numberDiff line change
@@ -74,42 +74,36 @@ RESOURCE_FILES = $(FRAMEWORK_RESOURCE_FILES:%=$(FRAMEWORK_RESOURCES_DIR)/%)
7474
# reserved-id-macro: external headers (Apple, ICU) have header guards with leading underscores.
7575
# super-class-method-mismatch: overridden methods with parameters with type variables are valid.
7676
DISALLOWED_WARNINGS = \
77-
-Wno-c++98-compat \
78-
-Wno-c++98-compat-pedantic \
79-
-Wno-direct-ivar-access \
80-
-Wno-documentation \
81-
-Wno-documentation-unknown-command \
82-
-Wno-dollar-in-identifier-extension \
83-
-Wno-objc-interface-ivars \
84-
-Wno-old-style-cast \
85-
-Wno-overriding-method-mismatch \
86-
-Wno-reserved-id-macro \
87-
-Wno-super-class-method-mismatch
77+
-Wno-c++98-compat \
78+
-Wno-c++98-compat-pedantic \
79+
-Wno-direct-ivar-access \
80+
-Wno-documentation \
81+
-Wno-documentation-unknown-command \
82+
-Wno-dollar-in-identifier-extension \
83+
-Wno-objc-interface-ivars \
84+
-Wno-old-style-cast \
85+
-Wno-overriding-method-mismatch \
86+
-Wno-reserved-id-macro \
87+
-Wno-super-class-method-mismatch
8888

8989
# Check that headers compile with most compiler flags.
9090
VERIFY_FLAGS := -I$(FRAMEWORK_DIR)/Headers -I$(DIST_INCLUDE_DIR) \
91-
-Werror -Weverything $(DISALLOWED_WARNINGS)
91+
-Werror -Weverything $(DISALLOWED_WARNINGS)
9292

93-
# As of Xcode 12, xcframeworks need a fat libraries for most platforms
94-
FAT_PLATFORMS = iphone simulator macosx maccatalyst watchos watchsimulator
95-
SINGLE_PLATFORMS = appletvos appletvsimulator
96-
framework_libraries = \
97-
$(foreach platform,$(FAT_PLATFORMS),$(wildcard $(BUILD_DIR)/$(platform)/lib$(1).a)) \
98-
$(foreach platform,$(SINGLE_PLATFORMS),$(wildcard $(BUILD_DIR)/objs-$(platform)/lib$(1).a)) \
99-
100-
framework: dist $(FRAMEWORK_DIR) resources
93+
framework: lib $(FRAMEWORK_DIR) resources
10194
@:
10295

10396
# Create an xcframework from all appletv, iphone, maccatalyst, macosx, simulator and watchos libs.
104-
$(FRAMEWORK_DIR): $(FRAMEWORK_HEADER) $(MODULE_MAP)
97+
$(FRAMEWORK_DIR): lib $(FRAMEWORK_HEADER) $(MODULE_MAP) | $(DIST_FRAMEWORK_DIR)
10598
@echo building $(FRAMEWORK_NAME) framework
99+
@mkdir -p $(FRAMEWORK_DIR)
106100
@$(J2OBJC_ROOT)/scripts/gen_xcframework.sh $(FRAMEWORK_DIR) \
107-
$(call framework_libraries,$(STATIC_LIBRARY_NAME))
101+
$(BUILD_DIR)/objs-*/lib$(STATIC_LIBRARY_NAME).a
108102
@mkdir -p $(FRAMEWORK_DIR)/Versions/A/Headers
109103
@/bin/ln -sfh A $(FRAMEWORK_DIR)/Versions/Current
110104
@/bin/ln -sfh Versions/Current/Headers $(FRAMEWORK_DIR)/Headers
111105
@tar cf - -C $(STATIC_HEADERS_DIR) $(FRAMEWORK_HEADERS:$(STATIC_HEADERS_DIR)/%=%) \
112-
| tar xfp - -C $(FRAMEWORK_DIR)/Versions/A/Headers
106+
| tar xfp - -C $(FRAMEWORK_DIR)/Versions/A/Headers
113107
@install -m 0644 $(FRAMEWORK_HEADER) $(FRAMEWORK_DIR)/Versions/A/Headers
114108
@install -m 0644 $(MODULE_MAP) $(FRAMEWORK_DIR)/Versions/A/Headers/
115109
@touch $@
@@ -120,18 +114,18 @@ $(FRAMEWORK_DIR): $(FRAMEWORK_HEADER) $(MODULE_MAP)
120114
$(FRAMEWORK_HEADER):
121115
@echo "//\n// $(FRAMEWORK_NAME).h\n//\n" > $@
122116
@for f in $(FRAMEWORK_PUBLIC_HEADERS:$(STATIC_HEADERS_DIR)/%=%); do\
123-
echo '#include <'$${f}'>'; done >> $@
117+
echo '#include <'$${f}'>'; done >> $@
124118

125119
test_warnings: $(FRAMEWORK_HEADER)
126120
@clang -c -o $(FRAMEWORK_HEADER:%.h=%.o) $(VERIFY_FLAGS) -x objective-c $@
127121
@clang -c -o $(FRAMEWORK_HEADER:%.h=%.o) $(VERIFY_FLAGS) -x objective-c \
128-
-fobjc-arc -fobjc-arc-exceptions $@
122+
-fobjc-arc -fobjc-arc-exceptions $@
129123
@clang -c -o $(FRAMEWORK_HEADER:%.h=%.o) $(VERIFY_FLAGS) -x objective-c -fno-objc-arc $@
130124
@clang -c -o $(FRAMEWORK_HEADER:%.h=%.o) $(VERIFY_FLAGS) -x objective-c++ $@
131125
@clang -c -o $(FRAMEWORK_HEADER:%.h=%.o) $(VERIFY_FLAGS) -x objective-c++ \
132-
-fobjc-arc -fobjc-arc-exceptions $@
126+
-fobjc-arc -fobjc-arc-exceptions $@
133127
@clang -c -o $(FRAMEWORK_HEADER:%.h=%.o) $(VERIFY_FLAGS) -x objective-c++ \
134-
-fno-objc-arc $@
128+
-fno-objc-arc $@
135129
@rm $(FRAMEWORK_HEADER:%.h=%.o)
136130

137131
$(MODULE_MAP):
@@ -152,3 +146,6 @@ $(FRAMEWORK_RESOURCES_DIR):
152146
$(FRAMEWORK_RESOURCES_DIR)/%: % | $(FRAMEWORK_RESOURCES_DIR)
153147
@mkdir -p $$(dirname $@)
154148
@install -m 0644 $< $@
149+
150+
$(DIST_FRAMEWORK_DIR):
151+
@mkdir -p $@

protobuf/runtime/Makefile

+42-37
Original file line numberDiff line numberDiff line change
@@ -21,39 +21,39 @@ include $(J2OBJC_ROOT)/make/j2objc_deps.mk
2121
include $(J2OBJC_ROOT)/java_deps/jars.mk
2222

2323
SRCS = \
24-
com/google/protobuf/AbstractMessage.m \
25-
com/google/protobuf/AbstractMessageLite.m \
26-
com/google/protobuf/ByteString.m \
27-
com/google/protobuf/CodedInputStream.mm \
28-
com/google/protobuf/CodedOutputStream.mm \
29-
com/google/protobuf/Descriptors.m \
30-
com/google/protobuf/Extension.m \
31-
com/google/protobuf/ExtensionLite.m \
32-
com/google/protobuf/ExtensionRegistry.mm \
33-
com/google/protobuf/ExtensionRegistryLite.mm \
34-
com/google/protobuf/GeneratedMessage.mm \
35-
com/google/protobuf/InvalidProtocolBufferException.m \
36-
com/google/protobuf/MapEntry.m \
37-
com/google/protobuf/MapField.m \
38-
com/google/protobuf/ProtocolStringList.m \
39-
com/google/protobuf/RepeatedField.m \
40-
com/google/protobuf/WireFormat.mm
24+
com/google/protobuf/AbstractMessage.m \
25+
com/google/protobuf/AbstractMessageLite.m \
26+
com/google/protobuf/ByteString.m \
27+
com/google/protobuf/CodedInputStream.mm \
28+
com/google/protobuf/CodedOutputStream.mm \
29+
com/google/protobuf/Descriptors.m \
30+
com/google/protobuf/Extension.m \
31+
com/google/protobuf/ExtensionLite.m \
32+
com/google/protobuf/ExtensionRegistry.mm \
33+
com/google/protobuf/ExtensionRegistryLite.mm \
34+
com/google/protobuf/GeneratedMessage.mm \
35+
com/google/protobuf/InvalidProtocolBufferException.m \
36+
com/google/protobuf/MapEntry.m \
37+
com/google/protobuf/MapField.m \
38+
com/google/protobuf/ProtocolStringList.m \
39+
com/google/protobuf/RepeatedField.m \
40+
com/google/protobuf/WireFormat.mm
4141

4242
# This headers list defines those headers included by all client code
4343
# of the ProtobufRuntime framework.
4444
FRAMEWORK_PUBLIC_HEADERS = \
45-
com/google/protobuf/AbstractMessage.h \
46-
com/google/protobuf/AbstractMessageLite.h \
47-
com/google/protobuf/ByteString.h \
48-
com/google/protobuf/Descriptors.h \
49-
com/google/protobuf/Extension.h \
50-
com/google/protobuf/ExtensionLite.h \
51-
com/google/protobuf/ExtensionRegistry.h \
52-
com/google/protobuf/ExtensionRegistryLite.h \
53-
com/google/protobuf/GeneratedMessage.h \
54-
com/google/protobuf/InvalidProtocolBufferException.h \
55-
com/google/protobuf/MapEntry.h \
56-
com/google/protobuf/ProtocolStringList.h
45+
com/google/protobuf/AbstractMessage.h \
46+
com/google/protobuf/AbstractMessageLite.h \
47+
com/google/protobuf/ByteString.h \
48+
com/google/protobuf/Descriptors.h \
49+
com/google/protobuf/Extension.h \
50+
com/google/protobuf/ExtensionLite.h \
51+
com/google/protobuf/ExtensionRegistry.h \
52+
com/google/protobuf/ExtensionRegistryLite.h \
53+
com/google/protobuf/GeneratedMessage.h \
54+
com/google/protobuf/InvalidProtocolBufferException.h \
55+
com/google/protobuf/MapEntry.h \
56+
com/google/protobuf/ProtocolStringList.h
5757

5858
SRC_DIR = $(CURDIR)/src
5959

@@ -81,8 +81,8 @@ ALL_SOURCES_FULL = $(HEADERS) $(SOURCES_FULL)
8181
J2OBJCC = $(ARCH_BIN_DIR)/j2objcc
8282

8383
C_FLAGS = $(DEBUGFLAGS) -Werror -Wobjc-missing-property-synthesis -Wshorten-64-to-32 \
84-
-Wsign-compare -fobjc-abi-version=2 -fobjc-legacy-dispatch -stdlib=libc++ \
85-
-Wno-nullability-completeness
84+
-Wsign-compare -fobjc-abi-version=2 -fobjc-legacy-dispatch -stdlib=libc++ \
85+
-Wno-nullability-completeness
8686
INCLUDE_DIRS = src $(GEN_OBJC_DIR)
8787

8888
FAT_LIB_NAME = protobuf_runtime
@@ -105,36 +105,41 @@ PROTOC_PLUGIN = $(DIST_DIR)/j2objc_protoc_plugin
105105
$(PROTOC_PLUGIN): protobuf_compiler_dist
106106
@:
107107

108-
dist: $(DIST_JAR) $(FAT_LIBS_DIST) $(ARCH_BUILD_DIR)/.dist_headers $(PROTOBUF_LICENSE_DIST)
108+
dist: framework | $(BUILD_DIR)
109+
110+
lib: $(DIST_JAR) $(FAT_LIBS_DIST) $(ARCH_BUILD_DIR)/.dist_headers $(PROTOBUF_LICENSE_DIST)
109111
@:
110112

111113
java: $(DIST_JAR)
112114
@:
113115

114-
generate: $(ALL_SOURCES_FULL)
116+
generate: $(ALL_SOURCES_FULL) | $(BUILD_DIR)
115117

116-
objc_sources_manifest: $(OBJC_SOURCES_MANIFEST)
118+
objc_sources_manifest: $(OBJC_SOURCES_MANIFEST) | $(BUILD_DIR)
117119
@:
118120

119-
$(OBJC_SOURCES_MANIFEST):
121+
$(OBJC_SOURCES_MANIFEST): | $(BUILD_DIR)
120122
@mkdir -p $(@D)
121123
@echo "Building $$(basename $@)"
122124
@if [ -e $@ ]; then rm $@; fi
123125
@files='$(ALL_SOURCES_FULL)' && for i in $$files; do \
124-
echo $$i >> $@; \
126+
echo $$i >> $@; \
125127
done
126128

127129
$(PROTOBUF_LICENSE_DIST): $(PROTOBUF_LICENSE)
128130
@mkdir -p $(@D)
129131
@install -m 0644 $< $@
130132

133+
$(BUILD_DIR):
134+
@mkdir -p $@
135+
131136
clean:
132137
@rm -rf $(BUILD_DIR) $(DIST_JAR) $(FAT_LIBS_DIST) $(DIST_HEADERS)
133138
@rm -rf $(PROTOBUF_LICENSE_DIST)
134139
@rm -rf $(FRAMEWORK_DIR)
135140

136141
DESCRIPTOR_PROTO_M_CMD = $(PROTOBUF_PROTOC) --plugin=protoc-gen-j2objc=$(PROTOC_PLUGIN) \
137-
--proto_path=$(PROTOBUF_INCLUDE_PATH) --j2objc_out=$(GEN_OBJC_DIR) $(DESCRIPTOR_PROTO)
142+
--proto_path=$(PROTOBUF_INCLUDE_PATH) --j2objc_out=$(GEN_OBJC_DIR) $(DESCRIPTOR_PROTO)
138143

139144
$(DESCRIPTOR_PROTO_M): $(DESCRIPTOR_PROTO) $(PROTOC_PLUGIN)
140145
@mkdir -p $(@D)

testing/mockito/Makefile

+3-1
Original file line numberDiff line numberDiff line change
@@ -493,4 +493,6 @@ clean:
493493
@rm -rf $(ARCH_INCLUDE_DIR)/org/mockito
494494
@rm -rf $(FRAMEWORK_DIR)
495495

496-
dist: $(FAT_LIBS_DIST) $(ARCH_HEADERS) $(MOCKITO_LICENSE_DIST)
496+
dist: framework
497+
498+
lib: $(FAT_LIBS_DIST) $(ARCH_HEADERS) $(MOCKITO_LICENSE_DIST)

testing/truth/Makefile

+3-1
Original file line numberDiff line numberDiff line change
@@ -159,4 +159,6 @@ $(BUILD_DIR):
159159
clean:
160160
@rm -rf $(BUILD_DIR) $(FAT_LIBS_DIST)
161161

162-
dist: $(FAT_LIBS_DIST) $(ARCH_HEADERS)
162+
dist: framework
163+
164+
lib: $(FAT_LIBS_DIST) $(ARCH_HEADERS)

xalan/Makefile

+3-1
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,9 @@ MKTEMP_DIR = j2objc-xalan
6767
XALAN_LICENSE = NOTICE
6868
XALAN_LICENSE_DIST = $(DIST_LICENSE_DIR)/apache_xalan_license.txt
6969

70-
dist: $(FAT_LIBS_DIST) $(DIST_JAR) $(XALAN_LICENSE_DIST)
70+
dist: framework
71+
72+
lib: $(FAT_LIBS_DIST) $(DIST_JAR) $(XALAN_LICENSE_DIST)
7173
@tar cf - -C $(GEN_OBJC_DIR) $(TRANSLATE_HEADERS:$(GEN_OBJC_DIR)/%=%) \
7274
| tar xfp - -C $(ARCH_INCLUDE_DIR)
7375

0 commit comments

Comments
 (0)