Added clang compilation syntax
This commit is contained in:
190
week4/day4.ipynb
190
week4/day4.ipynb
@@ -453,101 +453,6 @@
|
|||||||
"ui.launch(inbrowser=True)"
|
"ui.launch(inbrowser=True)"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"cell_type": "code",
|
|
||||||
"execution_count": 113,
|
|
||||||
"id": "e42286bc-085c-45dc-b101-234308e58269",
|
|
||||||
"metadata": {},
|
|
||||||
"outputs": [],
|
|
||||||
"source": [
|
|
||||||
"import platform\n",
|
|
||||||
"\n",
|
|
||||||
"VISUAL_STUDIO_2022_TOOLS = \"C:\\\\Program Files\\\\Microsoft Visual Studio\\\\2022\\\\Community\\\\Common7\\Tools\\\\VsDevCmd.bat\"\n",
|
|
||||||
"VISUAL_STUDIO_2019_TOOLS = \"C:\\\\Program Files (x86)\\\\Microsoft Visual Studio\\\\2019\\\\BuildTools\\\\Common7\\\\Tools\\\\VsDevCmd.bat\"\n",
|
|
||||||
"\n",
|
|
||||||
"simple_cpp = \"\"\"\n",
|
|
||||||
"#include <iostream>\n",
|
|
||||||
"\n",
|
|
||||||
"int main() {\n",
|
|
||||||
" std::cout << \"Hello\";\n",
|
|
||||||
" return 0;\n",
|
|
||||||
"}\n",
|
|
||||||
"\"\"\"\n",
|
|
||||||
"\n",
|
|
||||||
"def run_cmd(command_to_run):\n",
|
|
||||||
" try:\n",
|
|
||||||
" run_result = subprocess.run(command_to_run, check=True, text=True, capture_output=True)\n",
|
|
||||||
" return run_result.stdout if run_result.stdout else \"SUCCESS\"\n",
|
|
||||||
" except:\n",
|
|
||||||
" return \"\"\n",
|
|
||||||
"\n",
|
|
||||||
"def c_compiler_cmd(filename_base):\n",
|
|
||||||
" my_platform = platform.system()\n",
|
|
||||||
" my_compiler = []\n",
|
|
||||||
"\n",
|
|
||||||
" try:\n",
|
|
||||||
" with open(\"simple.cpp\", \"w\") as f:\n",
|
|
||||||
" f.write(simple_cpp)\n",
|
|
||||||
" \n",
|
|
||||||
" if my_platform == \"Windows\":\n",
|
|
||||||
" if os.path.isfile(VISUAL_STUDIO_2022_TOOLS):\n",
|
|
||||||
" if os.path.isfile(\"./simple.exe\"):\n",
|
|
||||||
" os.remove(\"./simple.exe\")\n",
|
|
||||||
" compile_cmd = [\"cmd\", \"/c\", VISUAL_STUDIO_2022_TOOLS, \"&\", \"cl\", \"simple.cpp\"]\n",
|
|
||||||
" if run_cmd(compile_cmd):\n",
|
|
||||||
" if run_cmd([\"./simple\"]) == \"Hello\":\n",
|
|
||||||
" my_compiler = [\"Windows\", \"Visual Studio 2022\", [\"cmd\", \"/c\", VISUAL_STUDIO_2022_TOOLS, \"&\", \"cl\", f\"{filename_base}.cpp\"]]\n",
|
|
||||||
" \n",
|
|
||||||
" if not my_compiler:\n",
|
|
||||||
" if os.path.isfile(VISUAL_STUDIO_2019_TOOLS):\n",
|
|
||||||
" if os.path.isfile(\"./simple.exe\"):\n",
|
|
||||||
" os.remove(\"./simple.exe\")\n",
|
|
||||||
" compile_cmd = [\"cmd\", \"/c\", VISUAL_STUDIO_2019_TOOLS, \"&\", \"cl\", \"simple.cpp\"]\n",
|
|
||||||
" if run_cmd(compile_cmd):\n",
|
|
||||||
" if run_cmd([\"./simple\"]) == \"Hello\":\n",
|
|
||||||
" my_compiler = [\"Windows\", \"Visual Studio 2019\", [\"cmd\", \"/c\", VISUAL_STUDIO_2019_TOOLS, \"&\", \"cl\", f\"{filename_base}.cpp\"]]\n",
|
|
||||||
" \n",
|
|
||||||
" if not my_compiler:\n",
|
|
||||||
" my_compiler=[my_platform, \"Unavailable\", []]\n",
|
|
||||||
" \n",
|
|
||||||
" elif my_platform == \"Linux\":\n",
|
|
||||||
" if os.path.isfile(\"./simple\"):\n",
|
|
||||||
" os.remove(\"./simple\")\n",
|
|
||||||
" compile_cmd = [\"g++\", \"simple.cpp\", \"-o\", \"simple\"]\n",
|
|
||||||
" if run_cmd(compile_cmd):\n",
|
|
||||||
" if run_cmd([\"./simple\"]) == \"Hello\":\n",
|
|
||||||
" my_compiler = [\"Linux\", \"GCC\", [\"g++\", f\"{filename_base}.cpp\", \"-o\", f\"{filename_base}\" ]]\n",
|
|
||||||
" \n",
|
|
||||||
" if not my_compiler:\n",
|
|
||||||
" if os.path.isfile(\"./simple\"):\n",
|
|
||||||
" os.remove(\"./simple\")\n",
|
|
||||||
" compile_cmd = [\"clang\", \"simple.cpp\", \"-o\", \"simple\"]\n",
|
|
||||||
" if run_cmd(compile_cmd):\n",
|
|
||||||
" if run_cmd([\"./simple\"]) == \"Hello\":\n",
|
|
||||||
" my_compiler = [\"Linux\", \"CLang\", [\"clang\", f\"{filename_base}.cpp\", \"-o\", f\"{filename_base}\"]]\n",
|
|
||||||
" \n",
|
|
||||||
" if not my_compiler:\n",
|
|
||||||
" my_compiler=[my_platform, \"Unavailable\", []]\n",
|
|
||||||
" \n",
|
|
||||||
" elif my_platform == \"Darwin\":\n",
|
|
||||||
" if os.path.isfile(\"./simple\"):\n",
|
|
||||||
" os.remove(\"./simple\")\n",
|
|
||||||
" compile_cmd = [\"gcc\", \"simple.cpp\"]\n",
|
|
||||||
" if run_cmd(compile_cmd):\n",
|
|
||||||
" if run_cmd([\"./simple\"]) == \"Hello\":\n",
|
|
||||||
" my_compiler = [\"Linux\", \"CLang\", [\"clang++\", \"-Ofast\", \"-std=c++17\", \"-march=armv8.5-a\", \"-mtune=apple-m1\", \"-mcpu=apple-m1\", \"-o\", f\"{filename_base}\", f\"{filename_base}.cpp\"]]\n",
|
|
||||||
" \n",
|
|
||||||
" if not my_compiler:\n",
|
|
||||||
" my_compiler=[my_platform, \"Unavailable\", []]\n",
|
|
||||||
" except:\n",
|
|
||||||
" my_compiler=[my_platform, \"Unavailable\", []]\n",
|
|
||||||
" \n",
|
|
||||||
" if my_compiler:\n",
|
|
||||||
" return my_compiler\n",
|
|
||||||
" else:\n",
|
|
||||||
" return [\"Unknown\", \"Unavailable\", []]\n"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": null,
|
"execution_count": null,
|
||||||
@@ -751,6 +656,101 @@
|
|||||||
" return \"Type your Python program here\""
|
" return \"Type your Python program here\""
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 113,
|
||||||
|
"id": "e42286bc-085c-45dc-b101-234308e58269",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"import platform\n",
|
||||||
|
"\n",
|
||||||
|
"VISUAL_STUDIO_2022_TOOLS = \"C:\\\\Program Files\\\\Microsoft Visual Studio\\\\2022\\\\Community\\\\Common7\\Tools\\\\VsDevCmd.bat\"\n",
|
||||||
|
"VISUAL_STUDIO_2019_TOOLS = \"C:\\\\Program Files (x86)\\\\Microsoft Visual Studio\\\\2019\\\\BuildTools\\\\Common7\\\\Tools\\\\VsDevCmd.bat\"\n",
|
||||||
|
"\n",
|
||||||
|
"simple_cpp = \"\"\"\n",
|
||||||
|
"#include <iostream>\n",
|
||||||
|
"\n",
|
||||||
|
"int main() {\n",
|
||||||
|
" std::cout << \"Hello\";\n",
|
||||||
|
" return 0;\n",
|
||||||
|
"}\n",
|
||||||
|
"\"\"\"\n",
|
||||||
|
"\n",
|
||||||
|
"def run_cmd(command_to_run):\n",
|
||||||
|
" try:\n",
|
||||||
|
" run_result = subprocess.run(command_to_run, check=True, text=True, capture_output=True)\n",
|
||||||
|
" return run_result.stdout if run_result.stdout else \"SUCCESS\"\n",
|
||||||
|
" except:\n",
|
||||||
|
" return \"\"\n",
|
||||||
|
"\n",
|
||||||
|
"def c_compiler_cmd(filename_base):\n",
|
||||||
|
" my_platform = platform.system()\n",
|
||||||
|
" my_compiler = []\n",
|
||||||
|
"\n",
|
||||||
|
" try:\n",
|
||||||
|
" with open(\"simple.cpp\", \"w\") as f:\n",
|
||||||
|
" f.write(simple_cpp)\n",
|
||||||
|
" \n",
|
||||||
|
" if my_platform == \"Windows\":\n",
|
||||||
|
" if os.path.isfile(VISUAL_STUDIO_2022_TOOLS):\n",
|
||||||
|
" if os.path.isfile(\"./simple.exe\"):\n",
|
||||||
|
" os.remove(\"./simple.exe\")\n",
|
||||||
|
" compile_cmd = [\"cmd\", \"/c\", VISUAL_STUDIO_2022_TOOLS, \"&\", \"cl\", \"simple.cpp\"]\n",
|
||||||
|
" if run_cmd(compile_cmd):\n",
|
||||||
|
" if run_cmd([\"./simple\"]) == \"Hello\":\n",
|
||||||
|
" my_compiler = [\"Windows\", \"Visual Studio 2022\", [\"cmd\", \"/c\", VISUAL_STUDIO_2022_TOOLS, \"&\", \"cl\", f\"{filename_base}.cpp\"]]\n",
|
||||||
|
" \n",
|
||||||
|
" if not my_compiler:\n",
|
||||||
|
" if os.path.isfile(VISUAL_STUDIO_2019_TOOLS):\n",
|
||||||
|
" if os.path.isfile(\"./simple.exe\"):\n",
|
||||||
|
" os.remove(\"./simple.exe\")\n",
|
||||||
|
" compile_cmd = [\"cmd\", \"/c\", VISUAL_STUDIO_2019_TOOLS, \"&\", \"cl\", \"simple.cpp\"]\n",
|
||||||
|
" if run_cmd(compile_cmd):\n",
|
||||||
|
" if run_cmd([\"./simple\"]) == \"Hello\":\n",
|
||||||
|
" my_compiler = [\"Windows\", \"Visual Studio 2019\", [\"cmd\", \"/c\", VISUAL_STUDIO_2019_TOOLS, \"&\", \"cl\", f\"{filename_base}.cpp\"]]\n",
|
||||||
|
" \n",
|
||||||
|
" if not my_compiler:\n",
|
||||||
|
" my_compiler=[my_platform, \"Unavailable\", []]\n",
|
||||||
|
" \n",
|
||||||
|
" elif my_platform == \"Linux\":\n",
|
||||||
|
" if os.path.isfile(\"./simple\"):\n",
|
||||||
|
" os.remove(\"./simple\")\n",
|
||||||
|
" compile_cmd = [\"g++\", \"simple.cpp\", \"-o\", \"simple\"]\n",
|
||||||
|
" if run_cmd(compile_cmd):\n",
|
||||||
|
" if run_cmd([\"./simple\"]) == \"Hello\":\n",
|
||||||
|
" my_compiler = [\"Linux\", \"GCC (g++)\", [\"g++\", f\"{filename_base}.cpp\", \"-o\", f\"{filename_base}\" ]]\n",
|
||||||
|
" \n",
|
||||||
|
" if not my_compiler:\n",
|
||||||
|
" if os.path.isfile(\"./simple\"):\n",
|
||||||
|
" os.remove(\"./simple\")\n",
|
||||||
|
" compile_cmd = [\"clang++\", \"simple.cpp\", \"-o\", \"simple\"]\n",
|
||||||
|
" if run_cmd(compile_cmd):\n",
|
||||||
|
" if run_cmd([\"./simple\"]) == \"Hello\":\n",
|
||||||
|
" my_compiler = [\"Linux\", \"CLang (Clang++)\", [\"clang++\", f\"{filename_base}.cpp\", \"-o\", f\"{filename_base}\"]]\n",
|
||||||
|
" \n",
|
||||||
|
" if not my_compiler:\n",
|
||||||
|
" my_compiler=[my_platform, \"Unavailable\", []]\n",
|
||||||
|
" \n",
|
||||||
|
" elif my_platform == \"Darwin\":\n",
|
||||||
|
" if os.path.isfile(\"./simple\"):\n",
|
||||||
|
" os.remove(\"./simple\")\n",
|
||||||
|
" compile_cmd = [\"gcc\", \"simple.cpp\"]\n",
|
||||||
|
" if run_cmd(compile_cmd):\n",
|
||||||
|
" if run_cmd([\"./simple\"]) == \"Hello\":\n",
|
||||||
|
" my_compiler = [\"Linux\", \"CLang\", [\"clang++\", \"-Ofast\", \"-std=c++17\", \"-march=armv8.5-a\", \"-mtune=apple-m1\", \"-mcpu=apple-m1\", \"-o\", f\"{filename_base}\", f\"{filename_base}.cpp\"]]\n",
|
||||||
|
" \n",
|
||||||
|
" if not my_compiler:\n",
|
||||||
|
" my_compiler=[my_platform, \"Unavailable\", []]\n",
|
||||||
|
" except:\n",
|
||||||
|
" my_compiler=[my_platform, \"Unavailable\", []]\n",
|
||||||
|
" \n",
|
||||||
|
" if my_compiler:\n",
|
||||||
|
" return my_compiler\n",
|
||||||
|
" else:\n",
|
||||||
|
" return [\"Unknown\", \"Unavailable\", []]\n"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": null,
|
"execution_count": null,
|
||||||
|
|||||||
Reference in New Issue
Block a user