fix: consider -fuse-ld

This commit is contained in:
Zhuo Yang 2024-09-11 22:03:33 +08:00
parent 9b874ad9b9
commit cab40fbdf5
2 changed files with 16 additions and 8 deletions

View File

@ -1,10 +1,11 @@
#!/bin/bash #!/bin/bash
if [ ! -f "log.wmake" ] wclean && wmake $@ > log.wmake 2>&1
then # if [ ! -f "log.wmake" ]
echo "wmake > log.wmake" # then
wmake $@ >log.wmake 2>&1 # echo "wmake > log.wmake"
fi # wmake $@ >log.wmake 2>&1
# fi
# Find the Python executable in the system # Find the Python executable in the system
PYTHON_EXEC=$(which python3) PYTHON_EXEC=$(which python3)

View File

@ -56,8 +56,15 @@ def parse_wmake_log(log_file):
# Determine if it's a compile or link statement # Determine if it's a compile or link statement
if '-Xlinker' in line or '-Wl,' in line: if '-Xlinker' in line or '-Wl,' in line:
# Link statement # Link statement
# Handle -fuse-ld
useld = re.search(r'(-fuse-ld=\S+)', line)
if useld:
link_options.append(f'{useld.group(1)}')
print(link_options)
# Handle output file
output_file = re.search(r'-o\s+(\S+)', line).group(1) output_file = re.search(r'-o\s+(\S+)', line).group(1)
lib_matches = re.findall(r'-l(\S+)', line) # Handle libraries
lib_matches = re.findall(r' -l(\S+)', line)
for lib in lib_matches: for lib in lib_matches:
if lib not in link_libraries: if lib not in link_libraries:
link_libraries.append(lib) link_libraries.append(lib)
@ -93,8 +100,8 @@ def parse_wmake_log(log_file):
objstr = f'add_library({objname} STATIC {" ".join(source_files)})' objstr = f'add_library({objname} STATIC {" ".join(source_files)})'
# Handle the issue of link and target having the same name # Handle the issue of link and target having the same name
link_libraries = [lib if lib != objname else f'lib{ link_libraries = [lib if lib != objname else f'lib{lib}.so'
lib}.so' for lib in link_libraries] for lib in link_libraries]
# Create CMakeLists.txt content # Create CMakeLists.txt content
cmake_content = f"""cmake_minimum_required(VERSION 3.10) cmake_content = f"""cmake_minimum_required(VERSION 3.10)