55 lines
1.8 KiB
Python

import os
import sys
from functools import cache
import pathlib
@cache
class Directories():
root_dir = os.path.realpath(os.path.join(os.path.dirname(__file__), '..', '..'))
output_dir = os.path.join(os.getcwd(), '.conan_utils')
env_dir = os.path.join(os.getcwd(), '.conan_utils', 'venv')
conan_home_dir = os.path.join(os.getcwd(), '.conan_utils', 'conan')
temp_dir = os.path.join(os.getcwd(), '.conan_utils', 'temp')
build_dir = os.path.join(temp_dir, 'build')
config_dir = os.path.join(root_dir, 'config')
recipes_dir = os.path.realpath(os.path.join(os.path.dirname(__file__), '..', '..', 'recipes'))
install_dir = os.path.join(output_dir, 'install')
@property
def config_packages_dir(self):
return os.path.join(self.config_dir, 'packages')
@property
def config_platform_packages_dir(self):
return os.path.join(self.config_packages_dir, sys.platform.lower())
@property
def profiles_dir(self):
return os.path.join(self.config_dir, 'profiles')
def change_output_dir(self, output_dir:str):
self.output_dir = output_dir
self.env_dir = os.path.join(output_dir, 'venv')
self.conan_home_dir = os.path.join(output_dir, 'conan')
self.temp_dir = os.path.join(output_dir, 'temp')
self.build_dir = os.path.join(self.temp_dir, 'build')
def force_short_paths(self):
drive = pathlib.Path(Directories.output_dir).drive + '\\'
if not drive:
return
self.output_dir = os.path.join(drive, 't')
self.env_dir = os.path.join(self.output_dir, 'v')
self.conan_home_dir = os.path.join(self.output_dir, 'c')
self.temp_dir = os.path.join(self.output_dir, 't')
self.build_dir = os.path.join(self.temp_dir, 'b')
self.install_dir = os.path.join(self.temp_dir, 'i')
directories = Directories()