pl-template/scripts/setup.py

136 lines
4.6 KiB
Python

import os
import platform
defines = [
"_DEBUG",
"PL_PROFILE_ON",
"PL_LOG_IMPLEMENTATION",
"PL_MEMORY_IMPLEMENTATION",
"PL_PROFILE_IMPLEMENTATION",
"PL_LOG_ON",
"PL_MEMORY_IMPLEMENTATION",
"PL_STL_IMPLEMENTATION",
"PL_STRING_IMPLEMENTATION",
"PL_MATH_INCLUDE_FUNCTIONS",
"PL_JSON_IMPLEMENTATION",
"PL_VULKAN_BACKEND",
"PL_METAL_BACKEND",
"PL_TEST_IMPLEMENTATION",
"PL_CONFIG_DEBUG"
]
includes = [
"${workspaceFolder}/**",
"${workspaceFolder}/src",
"${workspaceFolder}/extensions",
"${workspaceFolder}/../pilotlight/editor",
"${workspaceFolder}/../pilotlight/src",
"${workspaceFolder}/../pilotlight/libs",
"${workspaceFolder}/../pilotlight/extensions",
"${workspaceFolder}/../pilotlight/dependencies/stb",
"${workspaceFolder}/../pilotlight/dependencies/cgltf"
]
########################################################################################################################
# setup vs code
########################################################################################################################
if not os.path.isdir('../.vscode'):
os.mkdir('../.vscode')
with open('../.vscode/launch.json', 'w') as file:
lines = []
lines.append('{')
lines.append(' "version": "0.2.0",')
lines.append(' "configurations": [')
lines.append(' {')
if platform.system() == "Windows":
lines.append(' "name": "(Windows) Launch",')
lines.append(' "type": "cppvsdbg",')
lines.append(' "program": "${workspaceFolder}/../pilotlight/out/pilot_light.exe",')
lines.append(' "console": "integratedTerminal",')
elif platform.system() == "Darwin":
lines.append(' "name": "(lldb) Launch",')
lines.append(' "type": "cppdbg",')
lines.append(' "program": "${workspaceFolder}/../pilotlight/out/pilot_light",')
lines.append(' "externalConsole": false,')
lines.append(' "MIMode": "lldb",')
elif platform.system() == "Linux":
lines.append(' "name": "(lldb) Launch",')
lines.append(' "type": "cppdbg",')
lines.append(' "program": "${workspaceFolder}/../pilotlight/out/pilot_light",')
lines.append(' "request": "launch",')
lines.append(' "args": ["-a", "../../pl-template/out/template_app", "-hr"],')
lines.append(' "stopAtEntry": false,')
lines.append(' "cwd": "${workspaceFolder}/../pilotlight/out/",')
lines.append(' "environment": []')
lines.append(' }')
lines.append(' ]')
lines.append('}')
for i in range(len(lines)):
lines[i] = lines[i] + "\n"
file.writelines(lines)
with open('../.vscode/c_cpp_properties.json', 'w') as file:
lines = []
lines.append('{')
lines.append(' "version" : 4,')
lines.append(' "configurations": [')
lines.append(' {')
if platform.system() == "Windows":
lines.append(' "name": "Win32",')
elif platform.system() == "Darwin":
lines.append(' "name": "Apple",')
elif platform.system() == "Linux":
lines.append(' "name": "Linux",')
lines.append(' "includePath": [')
for i in range(len(includes) - 1):
lines.append(' "' + includes[i] + '",')
lines.append(' "' + includes[-1] + '"')
lines.append(' ],')
lines.append(' "defines": [')
for i in range(len(defines) - 1):
lines.append(' "' + defines[i] + '",')
lines.append(' "' + defines[-1] + '"')
lines.append(' ],')
lines.append(' "cStandard": "c11",')
if platform.system() == "Windows":
lines.append(' "windowsSdkVersion": "10.0.19041.0",')
lines.append(' "intelliSenseMode": "windows-msvc-x64"')
elif platform.system() == "Darwin":
lines.append(' "intelliSenseMode": "macos-clang-arm64"')
elif platform.system() == "Linux":
lines.append(' "intelliSenseMode": "linux-gcc-x64"')
lines.append(' }')
lines.append(' ]')
lines.append('}')
for i in range(len(lines)):
lines[i] = lines[i] + "\n"
file.writelines(lines)
with open('../.vscode/settings.json', 'w') as file:
lines = []
lines.append('{')
lines.append(' "files.associations": {')
lines.append(' "pl_*.h": "c",')
lines.append(' "pl_*.m": "objective-c",')
lines.append(' "pl_*.inc": "c"')
lines.append(' },')
lines.append(' "python.analysis.extraPaths": ["../pilotlight/pl_build"]')
lines.append('}')
for i in range(len(lines)):
lines[i] = lines[i] + "\n"
file.writelines(lines)