#!/bin/python import os import sys compiler_name = "g++" options = "" output_name = "mash" libs = [] lib_paths = [] includes = [] excludes = {} if os.name == 'nt': excludes["io-linux.cpp"] = True includes.extend(( "C:\\Users\\Jack\\source\\freetype-2.10.2\\include", "C:\\Users\\Jack\\source\\glfw-3.3.4.bin.WIN64\\include", "C:\\VulkanSDK\\1.2.135.0\\Include" )) libs.extend( ("freetype", "glfw3", "vulkan-1", "kernel32", "user32", "shell32", "gdi32", "vcruntime", "msvcrt", "msvcprt", "ucrt") ) lib_paths.extend(( "C:\\Users\\Jack\\source\\freetype-2.10.2\\win64", "C:\\Users\\Jack\\source\\glfw-3.3.4.bin.WIN64\\lib-vc2019", "C:\\VulkanSDK\\1.2.135.0\\Lib" )) output_name = "mash.exe" compiler_name = "clang" options += "-Xlinker /NODEFAULTLIB -Xlinker /SUBSYSTEM:windows -Xlinker /ENTRY:mainCRTStartup" else: excludes["io-windows.cpp"] = True includes.append("/usr/include/freetype2") libs.extend(("freetype", "glfw", "vulkan")) cpp_list = [] for l in os.listdir("."): if os.path.isfile(l) and l[-4:] == ".cpp" and l not in excludes: cpp_list.append(l) include_string = "" for i in includes: include_string += "-I" + i + " " libs_string = "" for l in libs: libs_string += "-l" + l + " " lib_paths_string = "" for l in lib_paths: lib_paths_string += "-L" + l + " " os.system("{0} {1} -std=c++17 {2} {3} {4} {5} -o {6}".format(compiler_name, options, include_string, lib_paths_string, libs_string, " ".join(cpp_list), output_name))