diff --git a/prism/Makefile b/prism/Makefile index 780549e54..b089a90a9 100644 --- a/prism/Makefile +++ b/prism/Makefile @@ -718,4 +718,12 @@ clean_param: checks clean_strat: checks @(cd $(PRISM_SRC_DIR)/strat && $(MAKE) -s EXE="$(EXE)" clean) +############### +# IDE support # +############### + +# Set up for IntelliJ IDEA +intellij: + etc/intellij/install.sh + ################################################# diff --git a/prism/etc/intellij/PrismCL.xml b/prism/etc/intellij/PrismCL.xml new file mode 100644 index 000000000..3ce16a5db --- /dev/null +++ b/prism/etc/intellij/PrismCL.xml @@ -0,0 +1,11 @@ + + + + diff --git a/prism/etc/intellij/install.sh b/prism/etc/intellij/install.sh new file mode 100755 index 000000000..2840cdf01 --- /dev/null +++ b/prism/etc/intellij/install.sh @@ -0,0 +1,51 @@ +#!/bin/bash + +# Path logic +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +PROJECT_ROOT="$(cd "$SCRIPT_DIR/../../.." && pwd)" + +# Check for force flag +FORCE=false +for arg in "$@"; do + if [ "$arg" == "--force" ] || [ "$arg" == "-f" ]; then + FORCE=true + fi +done + +# Check for symlink flag +SYMLINK=false +for arg in "$@"; do + if [ "$arg" == "--symlink" ] || [ "$arg" == "-s" ]; then + SYMLINK=true + fi +done + +copy_file() { + local src="$1" + local dest="$2" + local display_path=${dest#"$PROJECT_ROOT/"} + if [ -f "$dest" ] && [ "$FORCE" = false ]; then + echo "⚠️ Skipping $display_path (already exists). Use -f to overwrite." + else + if [ "$SYMLINK" = false ]; then + cp "$src" "$dest" && echo "✅ Installed $display_path" + else + rm "$dest" && ln -s "$src" "$dest" && echo "✅ Installed $display_path (symlink)" + fi + fi +} + +echo "🚀 Setting up IntelliJ configuration for PRISM..." + +# Ensure directories exist +mkdir -p "$PROJECT_ROOT/.idea/libraries" +mkdir -p "$PROJECT_ROOT/.idea/runConfigurations" + +# Execute copies +echo "Project root: $PROJECT_ROOT" +copy_file "$SCRIPT_DIR/prism.iml" "$PROJECT_ROOT/prism.iml" +copy_file "$SCRIPT_DIR/modules.xml" "$PROJECT_ROOT/.idea/modules.xml" +copy_file "$SCRIPT_DIR/lib.xml" "$PROJECT_ROOT/.idea/libraries/lib.xml" +copy_file "$SCRIPT_DIR/PrismCL.xml" "$PROJECT_ROOT/.idea/runConfigurations/PrismCL.xml" + +echo -e "Done. Now open the project in IntelliJ IDEA." diff --git a/prism/etc/intellij/lib.xml b/prism/etc/intellij/lib.xml new file mode 100644 index 000000000..a518fb86f --- /dev/null +++ b/prism/etc/intellij/lib.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/prism/etc/intellij/modules.xml b/prism/etc/intellij/modules.xml new file mode 100644 index 000000000..6f011765a --- /dev/null +++ b/prism/etc/intellij/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/prism/etc/intellij/prism.iml b/prism/etc/intellij/prism.iml new file mode 100644 index 000000000..570679c5f --- /dev/null +++ b/prism/etc/intellij/prism.iml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file