Skip to content

Commit 3b6e576

Browse files
committed
8347825: Make IDEA ide support use proper build system mechanisms
Reviewed-by: mcimadamore, erikj
1 parent 8bfa540 commit 3b6e576

File tree

4 files changed

+41
-34
lines changed

4 files changed

+41
-34
lines changed

bin/idea.sh

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#!/bin/sh
22
#
3-
# Copyright (c) 2009, 2020, Oracle and/or its affiliates. All rights reserved.
3+
# Copyright (c) 2009, 2025, Oracle and/or its affiliates. All rights reserved.
44
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
55
#
66
# This code is free software; you can redistribute it and/or modify it
@@ -99,7 +99,7 @@ if [ "$VERBOSE" = "true" ] ; then
9999
echo "idea template dir: $IDEA_TEMPLATE"
100100
fi
101101

102-
cd $TOP ; make -f "$IDEA_MAKE/idea.gmk" -I $MAKE_DIR/.. idea MAKEOVERRIDES= OUT=$IDEA_OUTPUT/env.cfg MODULES="$*" $CONF_ARG || exit 1
102+
cd $TOP ; make idea-gen-config IDEA_OUTPUT=$IDEA_OUTPUT MODULES="$*" $CONF_ARG || exit 1
103103
cd $SCRIPT_DIR
104104

105105
. $IDEA_OUTPUT/env.cfg

make/Main.gmk

+9-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#
2-
# Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved.
2+
# Copyright (c) 2011, 2025, Oracle and/or its affiliates. All rights reserved.
33
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
#
55
# This code is free software; you can redistribute it and/or modify it
@@ -356,6 +356,14 @@ $(eval $(call SetupTarget, vscode-project-ccls, \
356356
DEPS := compile-commands, \
357357
))
358358

359+
################################################################################
360+
# IDEA IntelliJ projects
361+
362+
$(eval $(call SetupTarget, idea-gen-config, \
363+
MAKEFILE := ide/idea/jdk/IdeaGenConfig, \
364+
ARGS := IDEA_OUTPUT="$(IDEA_OUTPUT)" MODULES="$(MODULES)", \
365+
))
366+
359367
################################################################################
360368
# Build demos targets
361369

Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#
2-
# Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
2+
# Copyright (c) 2016, 2025, Oracle and/or its affiliates. All rights reserved.
33
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
#
55
# This code is free software; you can redistribute it and/or modify it
@@ -23,36 +23,35 @@
2323
# questions.
2424
#
2525

26-
include Makefile
27-
include make/MainSupport.gmk
28-
29-
.PHONY: idea
30-
31-
ifeq ($(SPEC), )
32-
ifneq ($(words $(SPECS)), 1)
33-
@echo "Error: Multiple build specification files found. Please select one explicitly."
34-
@exit 2
35-
endif
36-
idea:
37-
@cd $(topdir)
38-
@$(MAKE) $(MFLAGS) $(MAKE_LOG_FLAGS) -r -R -j 1 -f $(topdir)/make/ide/idea/jdk/idea.gmk SPEC=$(SPECS) HAS_SPEC=true ACTUAL_TOPDIR=$(topdir) MODULES="$(MODULES)" idea
39-
else #with SPEC
40-
include make/common/Modules.gmk
41-
42-
ifeq ($(MODULES), )
43-
SEL_MODULES := $(call FindAllModules)
44-
else
45-
SEL_MODULES := $(MODULES)
46-
endif
47-
48-
idea:
26+
default: all
27+
28+
include $(SPEC)
29+
include MakeBase.gmk
30+
31+
include Modules.gmk
32+
33+
# MODULES and IDEA_OUTPUT is passed on the command line
34+
ifeq ($(MODULES), )
35+
override MODULES := $(call FindAllModules)
36+
endif
37+
38+
ifeq ($(IDEA_OUTPUT), )
39+
override IDEA_OUTPUT := $(WORKSPACE_ROOT)/.idea
40+
endif
41+
42+
OUT := $(IDEA_OUTPUT)/env.cfg
43+
44+
idea:
45+
$(RM) $(OUT)
4946
$(ECHO) "SUPPORT=$(SUPPORT_OUTPUTDIR)" >> $(OUT)
50-
$(ECHO) "MODULE_ROOTS=\"$(foreach mod, $(SEL_MODULES), $(call FindModuleSrcDirs, $(mod)))\"" >> $(OUT)
51-
$(ECHO) "MODULE_NAMES=\"$(strip $(foreach mod, $(SEL_MODULES), $(mod)))\"" >> $(OUT)
52-
$(ECHO) "SEL_MODULES=\"$(SEL_MODULES)\"" >> $(OUT)
47+
$(ECHO) "MODULE_ROOTS=\"$(foreach mod, $(MODULES), $(call FindModuleSrcDirs, $(mod)))\"" >> $(OUT)
48+
$(ECHO) "MODULE_NAMES=\"$(strip $(foreach mod, $(MODULES), $(mod)))\"" >> $(OUT)
49+
$(ECHO) "SEL_MODULES=\"$(MODULES)\"" >> $(OUT)
5350
$(ECHO) "BOOT_JDK=\"$(BOOT_JDK)\"" >> $(OUT)
5451
$(ECHO) "CYGPATH=\"$(PATHTOOL)\"" >> $(OUT)
5552
$(ECHO) "SPEC=\"$(SPEC)\"" >> $(OUT)
5653
$(ECHO) "JT_HOME=\"$(JT_HOME)\"" >> $(OUT)
5754

58-
endif
55+
all: idea
56+
57+
.PHONY: default all idea

test/make/TestIdea.gmk

+3-3
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,9 @@ clean-idea:
3333

3434
verify-idea:
3535
$(MKDIR) -p $(IDEA_OUTPUT_DIR)
36-
MAKEFLAGS= MFLAGS= $(BASH) $(TOPDIR)/bin/idea.sh -o $(IDEA_OUTPUT_DIR)/idea1
37-
MAKEFLAGS= MFLAGS= $(BASH) $(TOPDIR)/bin/idea.sh -o $(IDEA_OUTPUT_DIR)/idea2 java.base
38-
MAKEFLAGS= MFLAGS= $(BASH) $(TOPDIR)/bin/idea.sh -o $(IDEA_OUTPUT_DIR)/idea3 java.base jdk.compiler
36+
cd $(WORKSPACE_ROOT) && HAS_SPEC= MAKEFLAGS= MFLAGS= $(BASH) $(TOPDIR)/bin/idea.sh -o $(IDEA_OUTPUT_DIR)/idea1
37+
cd $(WORKSPACE_ROOT) && HAS_SPEC= MAKEFLAGS= MFLAGS= $(BASH) $(TOPDIR)/bin/idea.sh -o $(IDEA_OUTPUT_DIR)/idea2 java.base
38+
cd $(WORKSPACE_ROOT) && HAS_SPEC= MAKEFLAGS= MFLAGS= $(BASH) $(TOPDIR)/bin/idea.sh -o $(IDEA_OUTPUT_DIR)/idea3 java.base jdk.compiler
3939

4040
TEST_TARGETS += verify-idea
4141

0 commit comments

Comments
 (0)