mirror of
https://github.com/JetBrains/JetBrainsRuntime.git
synced 2025-12-06 01:19:28 +01:00
Added Clion project setup
This commit is contained in:
20
bin/idea.sh
20
bin/idea.sh
@@ -169,6 +169,8 @@ if [ "$ABSOLUTE_PATHS" = true ] ; then
|
|||||||
MODULE_DIR="$PROJECT_DIR"
|
MODULE_DIR="$PROJECT_DIR"
|
||||||
TOPLEVEL_MODULE_DIR="$TOPLEVEL_PROJECT_DIR"
|
TOPLEVEL_MODULE_DIR="$TOPLEVEL_PROJECT_DIR"
|
||||||
cd "$IDEA_OUTPUT_PARENT" && cd "$RELATIVE_BUILD_DIR" && BUILD_DIR="`pwd`"
|
cd "$IDEA_OUTPUT_PARENT" && cd "$RELATIVE_BUILD_DIR" && BUILD_DIR="`pwd`"
|
||||||
|
CLION_SCRIPT_TOPDIR="$OPENJDK_DIR"
|
||||||
|
CLION_PROJECT_DIR="$PROJECT_DIR"
|
||||||
else
|
else
|
||||||
if [ "$RELATIVE_PROJECT_DIR" = "." ] ; then
|
if [ "$RELATIVE_PROJECT_DIR" = "." ] ; then
|
||||||
PROJECT_DIR=""
|
PROJECT_DIR=""
|
||||||
@@ -185,6 +187,8 @@ else
|
|||||||
TOPLEVEL_MODULE_DIR="\$MODULE_DIR\$$TOPLEVEL_PROJECT_DIR"
|
TOPLEVEL_MODULE_DIR="\$MODULE_DIR\$$TOPLEVEL_PROJECT_DIR"
|
||||||
TOPLEVEL_PROJECT_DIR="\$PROJECT_DIR\$$TOPLEVEL_PROJECT_DIR"
|
TOPLEVEL_PROJECT_DIR="\$PROJECT_DIR\$$TOPLEVEL_PROJECT_DIR"
|
||||||
BUILD_DIR="\$PROJECT_DIR\$/$RELATIVE_BUILD_DIR"
|
BUILD_DIR="\$PROJECT_DIR\$/$RELATIVE_BUILD_DIR"
|
||||||
|
CLION_SCRIPT_TOPDIR="$CLION_RELATIVE_PROJECT_DIR"
|
||||||
|
CLION_PROJECT_DIR="\$PROJECT_DIR\$/$CLION_SCRIPT_TOPDIR"
|
||||||
fi
|
fi
|
||||||
if [ "$VERBOSE" = true ] ; then
|
if [ "$VERBOSE" = true ] ; then
|
||||||
echo "Project root: $PROJECT_DIR"
|
echo "Project root: $PROJECT_DIR"
|
||||||
@@ -214,6 +218,9 @@ add_replacement() {
|
|||||||
eval TO$NUM_REPLACEMENTS='$2'
|
eval TO$NUM_REPLACEMENTS='$2'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
add_replacement "###PATHTOOL###" "$PATHTOOL"
|
||||||
|
add_replacement "###CLION_SCRIPT_TOPDIR###" "$CLION_SCRIPT_TOPDIR"
|
||||||
|
add_replacement "###CLION_PROJECT_DIR###" "$CLION_PROJECT_DIR"
|
||||||
add_replacement "###PROJECT_DIR###" "$PROJECT_DIR"
|
add_replacement "###PROJECT_DIR###" "$PROJECT_DIR"
|
||||||
add_replacement "###MODULE_DIR###" "$MODULE_DIR"
|
add_replacement "###MODULE_DIR###" "$MODULE_DIR"
|
||||||
add_replacement "###TOPLEVEL_PROJECT_DIR###" "$TOPLEVEL_PROJECT_DIR"
|
add_replacement "###TOPLEVEL_PROJECT_DIR###" "$TOPLEVEL_PROJECT_DIR"
|
||||||
@@ -221,6 +228,7 @@ add_replacement "###TOPLEVEL_MODULE_DIR###" "$TOPLEVEL_MODULE_DIR"
|
|||||||
add_replacement "###MODULE_NAMES###" "$MODULE_NAMES"
|
add_replacement "###MODULE_NAMES###" "$MODULE_NAMES"
|
||||||
add_replacement "###VCS_TYPE###" "$VCS_TYPE"
|
add_replacement "###VCS_TYPE###" "$VCS_TYPE"
|
||||||
add_replacement "###BUILD_DIR###" "$BUILD_DIR"
|
add_replacement "###BUILD_DIR###" "$BUILD_DIR"
|
||||||
|
add_replacement "###RELATIVE_BUILD_DIR###" "$RELATIVE_BUILD_DIR"
|
||||||
if [ "x$PATHTOOL" != "x" ]; then
|
if [ "x$PATHTOOL" != "x" ]; then
|
||||||
add_replacement "###BASH_RUNNER_PREFIX###" "\$PROJECT_DIR\$/.idea/bash.bat"
|
add_replacement "###BASH_RUNNER_PREFIX###" "\$PROJECT_DIR\$/.idea/bash.bat"
|
||||||
else
|
else
|
||||||
@@ -301,3 +309,15 @@ if [ "x$PATHTOOL" != "x" ]; then
|
|||||||
echo "$WINENV_ROOT\bin\bash.exe -l -c \"cd %CD:\=/%/ && %*\"" >> "$IDEA_OUTPUT/bash.bat"
|
echo "$WINENV_ROOT\bin\bash.exe -l -c \"cd %CD:\=/%/ && %*\"" >> "$IDEA_OUTPUT/bash.bat"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if [ "$VERBOSE" = true ] ; then
|
||||||
|
IDEA_PROJECT_DIR="`dirname $IDEA_OUTPUT`"
|
||||||
|
if [ "x$PATHTOOL" != "x" ]; then
|
||||||
|
IDEA_PROJECT_DIR="`$PATHTOOL -am $IDEA_PROJECT_DIR`"
|
||||||
|
fi
|
||||||
|
echo "
|
||||||
|
Now you can open \"$IDEA_PROJECT_DIR\" as IDEA project
|
||||||
|
You can also run 'bash \"$IDEA_OUTPUT/jdk-clion/update-project.sh\"' to generate Clion project"
|
||||||
|
fi
|
||||||
@@ -57,6 +57,7 @@ else #with SPEC
|
|||||||
$(ECHO) "RELATIVE_TOPLEVEL_PROJECT_DIR=\"$(call RelativePath,$(TOPLEVEL_DIR),$(IDEA_OUTPUT_PARENT))\"" >> $(OUT)
|
$(ECHO) "RELATIVE_TOPLEVEL_PROJECT_DIR=\"$(call RelativePath,$(TOPLEVEL_DIR),$(IDEA_OUTPUT_PARENT))\"" >> $(OUT)
|
||||||
$(ECHO) "RELATIVE_PROJECT_DIR=\"$(call RelativePath,$(topdir),$(IDEA_OUTPUT_PARENT))\"" >> $(OUT)
|
$(ECHO) "RELATIVE_PROJECT_DIR=\"$(call RelativePath,$(topdir),$(IDEA_OUTPUT_PARENT))\"" >> $(OUT)
|
||||||
$(ECHO) "RELATIVE_BUILD_DIR=\"$(call RelativePath,$(OUTPUTDIR),$(IDEA_OUTPUT_PARENT))\"" >> $(OUT)
|
$(ECHO) "RELATIVE_BUILD_DIR=\"$(call RelativePath,$(OUTPUTDIR),$(IDEA_OUTPUT_PARENT))\"" >> $(OUT)
|
||||||
|
$(ECHO) "CLION_RELATIVE_PROJECT_DIR=\"$(call RelativePath,$(topdir),$(IDEA_OUTPUT_PARENT)/.idea/jdk-clion)\"" >> $(OUT)
|
||||||
$(ECHO) "PATHTOOL=\"$(PATHTOOL)\"" >> $(OUT)
|
$(ECHO) "PATHTOOL=\"$(PATHTOOL)\"" >> $(OUT)
|
||||||
$(ECHO) "JT_HOME=\"$(JT_HOME)\"" >> $(OUT)
|
$(ECHO) "JT_HOME=\"$(JT_HOME)\"" >> $(OUT)
|
||||||
$(ECHO) "WINENV_ROOT=\"$(WINENV_ROOT)\"" >> $(OUT)
|
$(ECHO) "WINENV_ROOT=\"$(WINENV_ROOT)\"" >> $(OUT)
|
||||||
|
|||||||
25
make/ide/idea/jdk/template/jdk-clion/.idea/misc.xml
generated
Normal file
25
make/ide/idea/jdk/template/jdk-clion/.idea/misc.xml
generated
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="CidrRootsConfiguration">
|
||||||
|
<excludeRoots>
|
||||||
|
<file path="###CLION_PROJECT_DIR###/build" />
|
||||||
|
<file path="###CLION_PROJECT_DIR###/make" />
|
||||||
|
</excludeRoots>
|
||||||
|
</component>
|
||||||
|
<component name="CompDBSettings">
|
||||||
|
<option name="linkedExternalProjectsSettings">
|
||||||
|
<CompDBProjectSettings>
|
||||||
|
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||||
|
<option name="modules">
|
||||||
|
<set>
|
||||||
|
<option value="$PROJECT_DIR$" />
|
||||||
|
</set>
|
||||||
|
</option>
|
||||||
|
</CompDBProjectSettings>
|
||||||
|
</option>
|
||||||
|
</component>
|
||||||
|
<component name="CompDBWorkspace" PROJECT_DIR="$PROJECT_DIR$">
|
||||||
|
<contentRoot DIR="###CLION_PROJECT_DIR###" />
|
||||||
|
</component>
|
||||||
|
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
||||||
|
</project>
|
||||||
16
make/ide/idea/jdk/template/jdk-clion/.idea/vcs.xml
generated
Normal file
16
make/ide/idea/jdk/template/jdk-clion/.idea/vcs.xml
generated
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="IssueNavigationConfiguration">
|
||||||
|
<option name="links">
|
||||||
|
<list>
|
||||||
|
<IssueNavigationLink>
|
||||||
|
<option name="issueRegexp" value="(?:^|\s|\p{Punct})(?:JDK-)?(\d{7})(?=$|\s|\p{Punct})" />
|
||||||
|
<option name="linkRegexp" value="https://bugs.openjdk.java.net/browse/JDK-$1" />
|
||||||
|
</IssueNavigationLink>
|
||||||
|
</list>
|
||||||
|
</option>
|
||||||
|
</component>
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="###CLION_PROJECT_DIR###" vcs="###VCS_TYPE###" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
55
make/ide/idea/jdk/template/jdk-clion/.idea/workspace.xml
generated
Normal file
55
make/ide/idea/jdk/template/jdk-clion/.idea/workspace.xml
generated
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="AutoImportSettings">
|
||||||
|
<option name="autoReloadType" value="SELECTIVE" />
|
||||||
|
</component>
|
||||||
|
<component name="ClangdSettings">
|
||||||
|
<option name="formatViaClangd" value="false" />
|
||||||
|
</component>
|
||||||
|
<component name="CompDBLocalSettings">
|
||||||
|
<option name="availableProjects">
|
||||||
|
<map>
|
||||||
|
<entry>
|
||||||
|
<key>
|
||||||
|
<ExternalProjectPojo>
|
||||||
|
<option name="name" value="jdk-clion" />
|
||||||
|
<option name="path" value="$PROJECT_DIR$" />
|
||||||
|
</ExternalProjectPojo>
|
||||||
|
</key>
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<ExternalProjectPojo>
|
||||||
|
<option name="name" value="jdk-clion" />
|
||||||
|
<option name="path" value="$PROJECT_DIR$" />
|
||||||
|
</ExternalProjectPojo>
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
</map>
|
||||||
|
</option>
|
||||||
|
<option name="projectSyncType">
|
||||||
|
<map>
|
||||||
|
<entry key="$PROJECT_DIR$" value="RE_IMPORT" />
|
||||||
|
</map>
|
||||||
|
</option>
|
||||||
|
</component>
|
||||||
|
<component name="ExternalProjectsData">
|
||||||
|
<projectState path="$PROJECT_DIR$">
|
||||||
|
<ProjectState />
|
||||||
|
</projectState>
|
||||||
|
</component>
|
||||||
|
<component name="ProjectViewState">
|
||||||
|
<option name="hideEmptyMiddlePackages" value="true" />
|
||||||
|
<option name="showLibraryContents" value="true" />
|
||||||
|
</component>
|
||||||
|
<component name="PropertiesComponent">
|
||||||
|
<property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
|
||||||
|
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
|
||||||
|
<property name="RunOnceActivity.cidr.known.project.marker" value="true" />
|
||||||
|
<property name="WebServerToolWindowFactoryState" value="false" />
|
||||||
|
<property name="cf.first.check.clang-format" value="false" />
|
||||||
|
<property name="cidr.known.project.marker" value="true" />
|
||||||
|
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
|
||||||
|
<property name="settings.editor.selected.configurable" value="CPPToolchains" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
29
make/ide/idea/jdk/template/jdk-clion/update-project.sh
Normal file
29
make/ide/idea/jdk/template/jdk-clion/update-project.sh
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
TOPDIR="###CLION_SCRIPT_TOPDIR###"
|
||||||
|
BUILD_DIR="###RELATIVE_BUILD_DIR###"
|
||||||
|
PATHTOOL="###PATHTOOL###"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
cd "`dirname $0`"
|
||||||
|
SCRIPT_DIR="`pwd`"
|
||||||
|
cd "$TOPDIR"
|
||||||
|
|
||||||
|
echo "Updating Clion project files in \"$SCRIPT_DIR\" for project \"`pwd`\""
|
||||||
|
|
||||||
|
set -o pipefail
|
||||||
|
make compile-commands SPEC="$BUILD_DIR/spec.gmk" | sed 's/^/ /' || exit 1
|
||||||
|
|
||||||
|
if [ "x$PATHTOOL" != "x" ]; then
|
||||||
|
CLION_PROJECT_DIR="`$PATHTOOL -am $SCRIPT_DIR`"
|
||||||
|
sed "s/\\\\\\\\\\\\\\\\/\\\\\\\\/g" "$BUILD_DIR/compile_commands.json" > "$SCRIPT_DIR/compile_commands.json"
|
||||||
|
else
|
||||||
|
CLION_PROJECT_DIR="$SCRIPT_DIR"
|
||||||
|
cp "$BUILD_DIR/compile_commands.json" "$SCRIPT_DIR"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "
|
||||||
|
Now you can open \"$CLION_PROJECT_DIR\" as Clion project
|
||||||
|
If Clion complains about missing files when loading a project, building it may help:
|
||||||
|
cd \"`pwd`\" && make SPEC=\"$BUILD_DIR/spec.gmk\""
|
||||||
@@ -4,8 +4,8 @@
|
|||||||
<option name="links">
|
<option name="links">
|
||||||
<list>
|
<list>
|
||||||
<IssueNavigationLink>
|
<IssueNavigationLink>
|
||||||
<option name="issueRegexp" value="\d{7}" />
|
<option name="issueRegexp" value="(?:^|\s|\p{Punct})(?:JDK-)?(\d{7})(?=$|\s|\p{Punct})" />
|
||||||
<option name="linkRegexp" value="https://bugs.openjdk.org/browse/JDK-$0" />
|
<option name="linkRegexp" value="https://bugs.openjdk.java.net/browse/JDK-$1" />
|
||||||
</IssueNavigationLink>
|
</IssueNavigationLink>
|
||||||
</list>
|
</list>
|
||||||
</option>
|
</option>
|
||||||
|
|||||||
Reference in New Issue
Block a user