@@ -863,33 +863,59 @@ def generate_clion_run_configs(self, configs):
863
863
name = "com.jetbrains.cidr.execution.CidrBuildBeforeRunTaskProvider$BuildBeforeRunTask" ,
864
864
enabled = "true" )
865
865
elif 'script' in config :
866
- clion_config = ET .SubElement (root , "configuration" , {
867
- "default" : "false" ,
868
- "name" : config ["name" ],
869
- "type" : "PythonConfigurationType" ,
870
- "factoryName" : "Python" ,
871
- "nameIsGenerated" : "false"
872
- })
873
- ET .SubElement (clion_config , "module" , name = "mrdocs" )
874
- ET .SubElement (clion_config , "option" , name = "ENV_FILES" , value = "" )
875
- ET .SubElement (clion_config , "option" , name = "INTERPRETER_OPTIONS" , value = "" )
876
- ET .SubElement (clion_config , "option" , name = "PARENT_ENVS" , value = "true" )
877
- envs = ET .SubElement (clion_config , "envs" )
878
- ET .SubElement (envs , "env" , name = "PYTHONUNBUFFERED" , value = "1" )
879
- ET .SubElement (clion_config , "option" , name = "SDK_HOME" , value = "" )
880
- ET .SubElement (clion_config , "option" , name = "WORKING_DIRECTORY" , value = "$PROJECT_DIR$" )
881
- ET .SubElement (clion_config , "option" , name = "IS_MODULE_SDK" , value = "true" )
882
- ET .SubElement (clion_config , "option" , name = "ADD_CONTENT_ROOTS" , value = "true" )
883
- ET .SubElement (clion_config , "option" , name = "ADD_SOURCE_ROOTS" , value = "true" )
884
- ET .SubElement (clion_config , "option" , name = "SCRIPT_NAME" , value = config ["script" ])
885
- ET .SubElement (clion_config , "option" , name = "PARAMETERS" ,
886
- value = ' ' .join (shlex .quote (arg ) for arg in config ["args" ]))
887
- ET .SubElement (clion_config , "option" , name = "SHOW_COMMAND_LINE" , value = "false" )
888
- ET .SubElement (clion_config , "option" , name = "EMULATE_TERMINAL" , value = "false" )
889
- ET .SubElement (clion_config , "option" , name = "MODULE_MODE" , value = "false" )
890
- ET .SubElement (clion_config , "option" , name = "REDIRECT_INPUT" , value = "false" )
891
- ET .SubElement (clion_config , "option" , name = "INPUT_FILE" , value = "" )
892
- ET .SubElement (clion_config , "method" , v = "2" )
866
+ if config ["script" ].endswith (".py" ):
867
+ clion_config = ET .SubElement (root , "configuration" , {
868
+ "default" : "false" ,
869
+ "name" : config ["name" ],
870
+ "type" : "PythonConfigurationType" ,
871
+ "factoryName" : "Python" ,
872
+ "nameIsGenerated" : "false"
873
+ })
874
+ ET .SubElement (clion_config , "module" , name = "mrdocs" )
875
+ ET .SubElement (clion_config , "option" , name = "ENV_FILES" , value = "" )
876
+ ET .SubElement (clion_config , "option" , name = "INTERPRETER_OPTIONS" , value = "" )
877
+ ET .SubElement (clion_config , "option" , name = "PARENT_ENVS" , value = "true" )
878
+ envs = ET .SubElement (clion_config , "envs" )
879
+ ET .SubElement (envs , "env" , name = "PYTHONUNBUFFERED" , value = "1" )
880
+ ET .SubElement (clion_config , "option" , name = "SDK_HOME" , value = "" )
881
+ if 'cwd' in config and config ["cwd" ] != self .options .mrdocs_src_dir :
882
+ ET .SubElement (clion_config , "option" , name = "WORKING_DIRECTORY" , value = config ["cwd" ])
883
+ else :
884
+ ET .SubElement (clion_config , "option" , name = "WORKING_DIRECTORY" , value = "$PROJECT_DIR$" )
885
+ ET .SubElement (clion_config , "option" , name = "IS_MODULE_SDK" , value = "true" )
886
+ ET .SubElement (clion_config , "option" , name = "ADD_CONTENT_ROOTS" , value = "true" )
887
+ ET .SubElement (clion_config , "option" , name = "ADD_SOURCE_ROOTS" , value = "true" )
888
+ ET .SubElement (clion_config , "option" , name = "SCRIPT_NAME" , value = config ["script" ])
889
+ ET .SubElement (clion_config , "option" , name = "PARAMETERS" ,
890
+ value = ' ' .join (shlex .quote (arg ) for arg in config ["args" ]))
891
+ ET .SubElement (clion_config , "option" , name = "SHOW_COMMAND_LINE" , value = "false" )
892
+ ET .SubElement (clion_config , "option" , name = "EMULATE_TERMINAL" , value = "false" )
893
+ ET .SubElement (clion_config , "option" , name = "MODULE_MODE" , value = "false" )
894
+ ET .SubElement (clion_config , "option" , name = "REDIRECT_INPUT" , value = "false" )
895
+ ET .SubElement (clion_config , "option" , name = "INPUT_FILE" , value = "" )
896
+ ET .SubElement (clion_config , "method" , v = "2" )
897
+ elif config ["script" ].endswith (".sh" ):
898
+ clion_config = ET .SubElement (root , "configuration" , {
899
+ "default" : "false" ,
900
+ "name" : config ["name" ],
901
+ "type" : "ShConfigurationType"
902
+ })
903
+ ET .SubElement (clion_config , "option" , name = "SCRIPT_TEXT" , value = f"bash { shlex .quote (config ['script' ])} " )
904
+ ET .SubElement (clion_config , "option" , name = "INDEPENDENT_SCRIPT_PATH" , value = "true" )
905
+ ET .SubElement (clion_config , "option" , name = "SCRIPT_PATH" , value = config ["script" ])
906
+ ET .SubElement (clion_config , "option" , name = "SCRIPT_OPTIONS" , value = "" )
907
+ ET .SubElement (clion_config , "option" , name = "INDEPENDENT_SCRIPT_WORKING_DIRECTORY" , value = "true" )
908
+ if 'cwd' in config and config ["cwd" ] != self .options .mrdocs_src_dir :
909
+ ET .SubElement (clion_config , "option" , name = "SCRIPT_WORKING_DIRECTORY" , value = config ["cwd" ])
910
+ else :
911
+ ET .SubElement (clion_config , "option" , name = "SCRIPT_WORKING_DIRECTORY" , value = "$PROJECT_DIR$" )
912
+ ET .SubElement (clion_config , "option" , name = "INDEPENDENT_INTERPRETER_PATH" , value = "true" )
913
+ ET .SubElement (clion_config , "option" , name = "INTERPRETER_PATH" , value = "" )
914
+ ET .SubElement (clion_config , "option" , name = "INTERPRETER_OPTIONS" , value = "" )
915
+ ET .SubElement (clion_config , "option" , name = "EXECUTE_IN_TERMINAL" , value = "true" )
916
+ ET .SubElement (clion_config , "option" , name = "EXECUTE_SCRIPT_FILE" , value = "true" )
917
+ ET .SubElement (clion_config , "envs" )
918
+ ET .SubElement (clion_config , "method" , v = "2" )
893
919
tree = ET .ElementTree (root )
894
920
tree .write (run_config_path , encoding = "utf-8" , xml_declaration = False )
895
921
@@ -1039,7 +1065,6 @@ def generate_run_configs(self):
1039
1065
"args" : bootstrap_args ,
1040
1066
"cwd" : self .options .mrdocs_src_dir
1041
1067
})
1042
- # make a copy of the args for the refresh config
1043
1068
bootstrap_refresh_args = bootstrap_args .copy ()
1044
1069
bootstrap_refresh_args .append ("--non-interactive" )
1045
1070
configs .append ({
@@ -1049,21 +1074,44 @@ def generate_run_configs(self):
1049
1074
"cwd" : self .options .mrdocs_src_dir
1050
1075
})
1051
1076
1077
+ # Targets for the pre-build steps
1052
1078
configs .append ({
1053
1079
"name" : f"MrDocs Generate Config Info ({ bootstrap_refresh_config_name } )" ,
1054
1080
"script" : os .path .join (self .options .mrdocs_src_dir , 'util' , 'generate-config-info.py' ),
1055
1081
"args" : [os .path .join (self .options .mrdocs_src_dir , 'src' , 'lib' , 'ConfigOptions.json' ),
1056
1082
os .path .join (self .options .mrdocs_build_dir )],
1057
1083
"cwd" : self .options .mrdocs_src_dir
1058
1084
})
1059
-
1060
1085
configs .append ({
1061
1086
"name" : f"MrDocs Generate YAML Schema" ,
1062
1087
"script" : os .path .join (self .options .mrdocs_src_dir , 'util' , 'generate-yaml-schema.py' ),
1063
1088
"args" : [],
1064
1089
"cwd" : self .options .mrdocs_src_dir
1065
1090
})
1066
1091
1092
+ # Documentation generation targets
1093
+ mrdocs_docs_dir = os .path .join (self .options .mrdocs_src_dir , "docs" )
1094
+ mrdocs_docs_ui_dir = os .path .join (mrdocs_docs_dir , "ui" )
1095
+ mrdocs_docs_script_ext = "bat" if self .is_windows () else "sh"
1096
+ configs .append ({
1097
+ "name" : "MrDocs Build Local Docs" ,
1098
+ "script" : os .path .join (mrdocs_docs_dir , f"build_local_docs.{ mrdocs_docs_script_ext } " ),
1099
+ "args" : [],
1100
+ "cwd" : mrdocs_docs_dir
1101
+ })
1102
+ configs .append ({
1103
+ "name" : "MrDocs Build Docs" ,
1104
+ "script" : os .path .join (mrdocs_docs_dir , f"build_docs.{ mrdocs_docs_script_ext } " ),
1105
+ "args" : [],
1106
+ "cwd" : mrdocs_docs_dir
1107
+ })
1108
+ configs .append ({
1109
+ "name" : "MrDocs Build UI Bundle" ,
1110
+ "script" : os .path .join (mrdocs_docs_ui_dir , f"build.{ mrdocs_docs_script_ext } " ),
1111
+ "args" : [],
1112
+ "cwd" : mrdocs_docs_ui_dir
1113
+ })
1114
+
1067
1115
print ("Generating CLion run configurations for MrDocs..." )
1068
1116
self .generate_clion_run_configs (configs )
1069
1117
print ("Generating Visual Studio run configurations for MrDocs..." )
0 commit comments