Skip to content

Commit 591d129

Browse files
Copy value classes into preview directories for inclusion in jimage
1 parent 0c0ad6a commit 591d129

File tree

1 file changed

+22
-2
lines changed

1 file changed

+22
-2
lines changed

make/CompileJavaModules.gmk

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,13 +99,16 @@ endif
9999

100100
################################################################################
101101
# Setup the main compilation
102+
103+
COMPILATION_OUTPUTDIR := $(if $($(MODULE)_BIN), $($(MODULE)_BIN), $(JDK_OUTPUTDIR)/modules)
104+
102105
$(eval $(call SetupJavaCompilation, $(MODULE), \
103106
SMALL_JAVA := false, \
104107
MODULE := $(MODULE), \
105108
SRC := $(wildcard $(MODULE_SRC_DIRS)), \
106109
INCLUDES := $(JDK_USER_DEFINED_FILTER), \
107110
FAIL_NO_SRC := $(FAIL_NO_SRC), \
108-
BIN := $(if $($(MODULE)_BIN), $($(MODULE)_BIN), $(JDK_OUTPUTDIR)/modules), \
111+
BIN := $(COMPILATION_OUTPUTDIR), \
109112
HEADERS := $(SUPPORT_OUTPUTDIR)/headers, \
110113
CREATE_API_DIGEST := true, \
111114
CLEAN := $(CLEAN), \
@@ -137,14 +140,23 @@ ifneq ($(COMPILER), bootjdk)
137140
MODULE_VALUECLASS_SRC_DIRS := $(call FindModuleValueClassSrcDirs, $(MODULE))
138141
MODULE_VALUECLASS_SOURCEPATH := $(call GetModuleValueClassSrcPath)
139142

143+
# Temporarily compile valueclasses into a separate directory with the form:
144+
# <tempdir>/<module>/<classpath>
145+
# and then copy the class files into:
146+
# <outdir>/<module>/META-INF/preview/<classpath>
147+
# We cannot compile directly into the desired directory because it's the
148+
# compiler which creates the original '<module>/<classpath>/...' hierarchy.
149+
VALUECLASS_OUTPUTDIR := $(SUPPORT_OUTPUTDIR)/$(VALUECLASSES_STR)
150+
PREVIEW_OUTPUTDIR := $(COMPILATION_OUTPUTDIR)/$(MODULE)/META-INF/preview
151+
140152
ifneq ($(MODULE_VALUECLASS_SRC_DIRS),)
141153
$(eval $(call SetupJavaCompilation, $(MODULE)-$(VALUECLASSES_STR), \
142154
SMALL_JAVA := false, \
143155
MODULE := $(MODULE), \
144156
SRC := $(wildcard $(MODULE_VALUECLASS_SRC_DIRS)), \
145157
INCLUDES := $(JDK_USER_DEFINED_FILTER), \
146158
FAIL_NO_SRC := $(FAIL_NO_SRC), \
147-
BIN := $(SUPPORT_OUTPUTDIR)/$(VALUECLASSES_STR)/, \
159+
BIN := $(VALUECLASS_OUTPUTDIR)/, \
148160
JAR := $(JDK_OUTPUTDIR)/lib/$(VALUECLASSES_STR)/$(MODULE)-$(VALUECLASSES_STR).jar, \
149161
HEADERS := $(SUPPORT_OUTPUTDIR)/headers, \
150162
DISABLED_WARNINGS := $(DISABLED_WARNINGS_java) preview, \
@@ -162,6 +174,14 @@ ifneq ($(COMPILER), bootjdk)
162174

163175
TARGETS += $($(MODULE)-$(VALUECLASSES_STR))
164176

177+
# Restructure the class file hierarchy from <module>/<classpath>/... to <module>/META-INF/preview/<classpath>/...
178+
$(PREVIEW_OUTPUTDIR)/_copy_valueclasses.marker: $($(MODULE)-$(VALUECLASSES_STR))
179+
$(call MakeTargetDir)
180+
$(CP) -R $(VALUECLASS_OUTPUTDIR)/$(MODULE)/. $(@D)/
181+
$(TOUCH) $@
182+
183+
TARGETS += $(PREVIEW_OUTPUTDIR)/_copy_valueclasses.marker
184+
165185
$(eval $(call SetupCopyFiles, $(MODULE)-copy-valueclass-jar, \
166186
FILES := $(JDK_OUTPUTDIR)/lib/$(VALUECLASSES_STR)/$(MODULE)-$(VALUECLASSES_STR).jar, \
167187
DEST := $(SUPPORT_OUTPUTDIR)/modules_libs/$(MODULE)/$(VALUECLASSES_STR), \

0 commit comments

Comments
 (0)