mirror of
https://github.com/wesnoth/wesnoth
synced 2025-04-12 22:03:42 +00:00
add_source_file: styling changes for readability (#10011)
This commit is contained in:
parent
07ef83131a
commit
85c00bb161
|
@ -24,7 +24,6 @@ This only supports files inside the "src" directory.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
import sys
|
|
||||||
import inspect
|
import inspect
|
||||||
import pathlib
|
import pathlib
|
||||||
|
|
||||||
|
@ -38,13 +37,12 @@ except:
|
||||||
)))
|
)))
|
||||||
exit(1)
|
exit(1)
|
||||||
|
|
||||||
#=========#
|
|
||||||
# Globals #
|
# Globals #
|
||||||
#=========#
|
|
||||||
|
|
||||||
# Either the executable directory or the current working directory
|
# Either the executable directory or the current working directory
|
||||||
# should be the wesnoth root directory
|
# should be the wesnoth root directory
|
||||||
rootdir = pathlib.Path(inspect.getsourcefile(lambda:0))
|
rootdir = pathlib.Path(inspect.getsourcefile(lambda: 0))
|
||||||
if not rootdir.joinpath("projectfiles").exists():
|
if not rootdir.joinpath("projectfiles").exists():
|
||||||
rootdir = pathlib.Path()
|
rootdir = pathlib.Path()
|
||||||
if not rootdir.joinpath("projectfiles").exists():
|
if not rootdir.joinpath("projectfiles").exists():
|
||||||
|
@ -77,9 +75,8 @@ code_blocks_target_translations = {
|
||||||
"tests": "tests",
|
"tests": "tests",
|
||||||
}
|
}
|
||||||
|
|
||||||
#=======#
|
|
||||||
# XCode #
|
# XCode #
|
||||||
#=======#
|
|
||||||
|
|
||||||
def modify_xcode(filename, targets, remove):
|
def modify_xcode(filename, targets, remove):
|
||||||
"""Add the given file to the specified targets.
|
"""Add the given file to the specified targets.
|
||||||
|
@ -121,7 +118,7 @@ def modify_xcode(filename, targets, remove):
|
||||||
raise Exception(f"problem finding '{d}' group in '{groupname}'")
|
raise Exception(f"problem finding '{d}' group in '{groupname}'")
|
||||||
parent_group = found_groups[0]
|
parent_group = found_groups[0]
|
||||||
|
|
||||||
if remove :
|
if remove:
|
||||||
# Remove from all targets if we want to remove
|
# Remove from all targets if we want to remove
|
||||||
for file in project.get_files_by_name(filename.name, parent=parent_group):
|
for file in project.get_files_by_name(filename.name, parent=parent_group):
|
||||||
project.remove_file_by_id(file.get_id())
|
project.remove_file_by_id(file.get_id())
|
||||||
|
@ -139,19 +136,19 @@ def modify_xcode(filename, targets, remove):
|
||||||
# a different place will block addition of the new file.
|
# a different place will block addition of the new file.
|
||||||
# the rest is just to match existing project file structure.
|
# the rest is just to match existing project file structure.
|
||||||
project.add_file(filename.name,
|
project.add_file(filename.name,
|
||||||
force=True,
|
force=True,
|
||||||
tree="<group>",
|
tree="<group>",
|
||||||
parent=parent_group,
|
parent=parent_group,
|
||||||
target_name=translated_targets,
|
target_name=translated_targets,
|
||||||
)
|
)
|
||||||
|
|
||||||
# that's done, save the file
|
# that's done, save the file
|
||||||
project.save()
|
project.save()
|
||||||
return
|
return
|
||||||
|
|
||||||
#==============#
|
|
||||||
# source_lists #
|
# source_lists #
|
||||||
#==============#
|
|
||||||
|
|
||||||
def modify_source_list(filename, source_list, remove):
|
def modify_source_list(filename, source_list, remove):
|
||||||
source_list_file = rootdir.joinpath("source_lists", source_list)
|
source_list_file = rootdir.joinpath("source_lists", source_list)
|
||||||
|
@ -163,7 +160,8 @@ def modify_source_list(filename, source_list, remove):
|
||||||
return
|
return
|
||||||
|
|
||||||
if remove:
|
if remove:
|
||||||
if file_line in sl_lines: sl_lines.remove(file_line)
|
if file_line in sl_lines:
|
||||||
|
sl_lines.remove(file_line)
|
||||||
else:
|
else:
|
||||||
# if the target already has an entry with the same filename, loudly skip
|
# if the target already has an entry with the same filename, loudly skip
|
||||||
if file_line in sl_lines:
|
if file_line in sl_lines:
|
||||||
|
@ -175,20 +173,22 @@ def modify_source_list(filename, source_list, remove):
|
||||||
sl_lines.sort()
|
sl_lines.sort()
|
||||||
open(source_list_file, 'w').writelines(sl_lines)
|
open(source_list_file, 'w').writelines(sl_lines)
|
||||||
|
|
||||||
|
|
||||||
def add_to_source_lists(filename, targets):
|
def add_to_source_lists(filename, targets):
|
||||||
translated_targets = [source_list_target_translations[t] for t in targets]
|
translated_targets = [source_list_target_translations[t] for t in targets]
|
||||||
print(" source_list targets:", translated_targets)
|
print(" source_list targets:", translated_targets)
|
||||||
for t in translated_targets:
|
for t in translated_targets:
|
||||||
modify_source_list(filename, t, False)
|
modify_source_list(filename, t, False)
|
||||||
|
|
||||||
|
|
||||||
def remove_from_source_lists(filename):
|
def remove_from_source_lists(filename):
|
||||||
# remove from all tagerts if -r was specified.
|
# remove from all tagerts if -r was specified.
|
||||||
for t in source_list_target_translations.values():
|
for t in source_list_target_translations.values():
|
||||||
modify_source_list(filename, t, True)
|
modify_source_list(filename, t, True)
|
||||||
|
|
||||||
#==============#
|
|
||||||
# Code::Blocks #
|
# Code::Blocks #
|
||||||
#==============#
|
|
||||||
|
|
||||||
def modify_code_blocks_target(filename, target, remove):
|
def modify_code_blocks_target(filename, target, remove):
|
||||||
cbp_file = rootdir.joinpath(
|
cbp_file = rootdir.joinpath(
|
||||||
|
@ -205,7 +205,8 @@ def modify_code_blocks_target(filename, target, remove):
|
||||||
elem = f"\t\t<Unit filename=\"{filename_for_cbp}\" />\n"
|
elem = f"\t\t<Unit filename=\"{filename_for_cbp}\" />\n"
|
||||||
|
|
||||||
if remove:
|
if remove:
|
||||||
if elem in cbp_lines: cbp_lines.remove(elem)
|
if elem in cbp_lines:
|
||||||
|
cbp_lines.remove(elem)
|
||||||
else:
|
else:
|
||||||
# if the target already has an entry with the same filename, loudly skip
|
# if the target already has an entry with the same filename, loudly skip
|
||||||
if elem in cbp_lines:
|
if elem in cbp_lines:
|
||||||
|
@ -226,12 +227,14 @@ def modify_code_blocks_target(filename, target, remove):
|
||||||
|
|
||||||
open(cbp_file, 'w').writelines(cbp_lines)
|
open(cbp_file, 'w').writelines(cbp_lines)
|
||||||
|
|
||||||
|
|
||||||
def modify_code_blocks(filename, targets, remove):
|
def modify_code_blocks(filename, targets, remove):
|
||||||
translated_targets = code_blocks_target_translations.values() if remove else [code_blocks_target_translations[t] for t in targets]
|
translated_targets = code_blocks_target_translations.values() if remove else [code_blocks_target_translations[t] for t in targets]
|
||||||
print(" code::blocks targets:", translated_targets)
|
print(" code::blocks targets:", translated_targets)
|
||||||
for t in translated_targets:
|
for t in translated_targets:
|
||||||
modify_code_blocks_target(filename, t, remove)
|
modify_code_blocks_target(filename, t, remove)
|
||||||
|
|
||||||
|
|
||||||
def sanity_check_existing_cpp_hpp(filenames):
|
def sanity_check_existing_cpp_hpp(filenames):
|
||||||
"""
|
"""
|
||||||
If we're adding a .cpp file, check whether a .hpp should be added too, etc.
|
If we're adding a .cpp file, check whether a .hpp should be added too, etc.
|
||||||
|
@ -264,6 +267,7 @@ def sanity_check_existing_cpp_hpp(filenames):
|
||||||
print("ERROR: Not making changes, as checks failed and --no-checks option was not used.")
|
print("ERROR: Not making changes, as checks failed and --no-checks option was not used.")
|
||||||
exit(1)
|
exit(1)
|
||||||
|
|
||||||
|
|
||||||
def canonicalise_filenames(original_filenames):
|
def canonicalise_filenames(original_filenames):
|
||||||
"""
|
"""
|
||||||
The script supports giving the filenames with or without the "src/" prefix.
|
The script supports giving the filenames with or without the "src/" prefix.
|
||||||
|
@ -288,22 +292,22 @@ def canonicalise_filenames(original_filenames):
|
||||||
|
|
||||||
return filenames
|
return filenames
|
||||||
|
|
||||||
#======#
|
|
||||||
# main #
|
# main #
|
||||||
#======#
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
ap = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter)
|
ap = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter)
|
||||||
# a file argument is mandatory
|
# a file argument is mandatory
|
||||||
ap.add_argument("filename", action="store", nargs="+",
|
ap.add_argument("filename", action="store", nargs="+",
|
||||||
help="the .cpp and .hpp files to add")
|
help="the .cpp and .hpp files to add")
|
||||||
ap.add_argument("--target", action="store", nargs=1,
|
ap.add_argument("--target", action="store", nargs=1,
|
||||||
default=["wesnoth"],
|
default=["wesnoth"],
|
||||||
help="which build targets to add the file to")
|
help="which build targets to add the file to")
|
||||||
ap.add_argument("--no-checks", action="store_true",
|
ap.add_argument("--no-checks", action="store_true",
|
||||||
help="do not check whether the files exist, etc")
|
help="do not check whether the files exist, etc")
|
||||||
ap.add_argument("-r", "--remove", action="store_true",
|
ap.add_argument("-r", "--remove", action="store_true",
|
||||||
help="remove the specified files from projectfiles instead of adding them, --target is then ignored")
|
help="remove the specified files from projectfiles instead of adding them, --target is then ignored")
|
||||||
# By default, recognise --help too
|
# By default, recognise --help too
|
||||||
options = ap.parse_args()
|
options = ap.parse_args()
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user