Fix install with register_compile_target=0 register_install_target=1
If register_compile_target=0, `self.builddir` on DXXProgram was used but not set. ``` AttributeError: 'D1XProgram' object has no attribute 'builddir': File "/s/SConstruct", line 5263: main(register_program) File "/s/SConstruct", line 5218: ''.join(['%s:\n%s' % (d.program_message_prefix, d.init(substenv)) for d in dxx]) File "/s/SConstruct", line 4853: self.register_program() File "/s/SConstruct", line 4895: exe_target = self.builddir.File(exe_target) ```
This commit is contained in:
parent
7e362f9433
commit
4e18ed1ac9
17
SConstruct
17
SConstruct
|
@ -3458,6 +3458,11 @@ class DXXCommon(LazyObjectConstructor):
|
||||||
@cached_property
|
@cached_property
|
||||||
def program_message_prefix(self):
|
def program_message_prefix(self):
|
||||||
return '%s.%d' % (self.PROGRAM_NAME, self.program_instance)
|
return '%s.%d' % (self.PROGRAM_NAME, self.program_instance)
|
||||||
|
|
||||||
|
@cached_property
|
||||||
|
def builddir(self):
|
||||||
|
return self.env.Dir(self.user_settings.builddir)
|
||||||
|
|
||||||
# Settings which affect how the files are compiled
|
# Settings which affect how the files are compiled
|
||||||
class UserBuildSettings:
|
class UserBuildSettings:
|
||||||
class IntVariable(object):
|
class IntVariable(object):
|
||||||
|
@ -3952,8 +3957,9 @@ class DXXCommon(LazyObjectConstructor):
|
||||||
CXXFLAGS = ['-pthread'],
|
CXXFLAGS = ['-pthread'],
|
||||||
)
|
)
|
||||||
|
|
||||||
def __init__(self,__program_instance=itertools.count(1)):
|
def __init__(self,user_settings,__program_instance=itertools.count(1)):
|
||||||
self.program_instance = next(__program_instance)
|
self.program_instance = next(__program_instance)
|
||||||
|
self.user_settings = user_settings
|
||||||
|
|
||||||
def create_header_targets(self,__shared_header_file_list=[],__shared_cpp_dict={}):
|
def create_header_targets(self,__shared_header_file_list=[],__shared_cpp_dict={}):
|
||||||
fs = SCons.Node.FS.get_default_fs()
|
fs = SCons.Node.FS.get_default_fs()
|
||||||
|
@ -4257,7 +4263,6 @@ class DXXCommon(LazyObjectConstructor):
|
||||||
if user_settings.editor:
|
if user_settings.editor:
|
||||||
add_flags['CPPPATH'].append('common/include/editor')
|
add_flags['CPPPATH'].append('common/include/editor')
|
||||||
CLVar = SCons.Util.CLVar
|
CLVar = SCons.Util.CLVar
|
||||||
self.builddir = env.Dir(user_settings.builddir)
|
|
||||||
for flags in ('CPPFLAGS', 'CXXFLAGS', 'LIBS', 'LINKFLAGS'):
|
for flags in ('CPPFLAGS', 'CXXFLAGS', 'LIBS', 'LINKFLAGS'):
|
||||||
value = getattr(self.user_settings, flags)
|
value = getattr(self.user_settings, flags)
|
||||||
if value is not None:
|
if value is not None:
|
||||||
|
@ -4501,8 +4506,8 @@ class DXXArchive(DXXCommon):
|
||||||
))
|
))
|
||||||
|
|
||||||
def __init__(self,user_settings):
|
def __init__(self,user_settings):
|
||||||
DXXCommon.__init__(self)
|
user_settings = user_settings.clone()
|
||||||
self.user_settings = user_settings.clone()
|
DXXCommon.__init__(self, user_settings)
|
||||||
if not user_settings.register_compile_target:
|
if not user_settings.register_compile_target:
|
||||||
return
|
return
|
||||||
self.prepare_environment()
|
self.prepare_environment()
|
||||||
|
@ -4832,13 +4837,13 @@ class DXXProgram(DXXCommon):
|
||||||
def __init__(self,prefix,variables,filtered_help):
|
def __init__(self,prefix,variables,filtered_help):
|
||||||
self.variables = variables
|
self.variables = variables
|
||||||
self._argument_prefix_list = prefix
|
self._argument_prefix_list = prefix
|
||||||
DXXCommon.__init__(self)
|
user_settings = self.UserSettings(program=self)
|
||||||
|
DXXCommon.__init__(self, user_settings)
|
||||||
git_describe_version = Git.compute_extra_version().describe
|
git_describe_version = Git.compute_extra_version().describe
|
||||||
extra_version = 'v%s.%s.%s' % (self.VERSION_MAJOR, self.VERSION_MINOR, self.VERSION_MICRO)
|
extra_version = 'v%s.%s.%s' % (self.VERSION_MAJOR, self.VERSION_MINOR, self.VERSION_MICRO)
|
||||||
if git_describe_version and not (extra_version == git_describe_version or extra_version[1:] == git_describe_version):
|
if git_describe_version and not (extra_version == git_describe_version or extra_version[1:] == git_describe_version):
|
||||||
extra_version += ' ' + git_describe_version
|
extra_version += ' ' + git_describe_version
|
||||||
print('===== %s %s =====' % (self.PROGRAM_NAME, extra_version))
|
print('===== %s %s =====' % (self.PROGRAM_NAME, extra_version))
|
||||||
self.user_settings = user_settings = self.UserSettings(program=self)
|
|
||||||
user_settings.register_variables(prefix, variables, filtered_help)
|
user_settings.register_variables(prefix, variables, filtered_help)
|
||||||
|
|
||||||
def init(self,substenv):
|
def init(self,substenv):
|
||||||
|
|
Loading…
Reference in a new issue