mirror of
https://github.com/vczh-libraries/Release.git
synced 2026-08-17 17:31:44 +08:00
Refresh Unix makefile dependencies
This commit is contained in:
@@ -1,3 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo `clang++ --std=c++20 $1 -MM $2` | sed -E -e 's%\\[[:space:]]*%%g'
|
||||
@@ -3,23 +3,31 @@ USE_GCC?=NO
|
||||
|
||||
# add "--stdlib=libc++" after bug #808086 is fixed
|
||||
|
||||
CPP_DEPENDENCY_OPTIONS=-MMD -MP -MF $(@:.o=.d) -MT $@
|
||||
CPP_PLATFORM_NAME=$(shell uname -s)
|
||||
CPP_PLATFORM_COMPILE_OPTIONS=
|
||||
CPP_PLATFORM_LINK_OPTIONS=
|
||||
ifeq ($(shell uname -s),Darwin)
|
||||
CPP_PLATFORM_LINK_OPTIONS=-framework CoreFoundation
|
||||
ifeq ($(CPP_PLATFORM_NAME),Darwin)
|
||||
CPP_PLATFORM_COMPILE_OPTIONS=-fblocks
|
||||
CPP_PLATFORM_LINK_OPTIONS=-framework CoreFoundation -framework Network
|
||||
else ifeq ($(CPP_PLATFORM_NAME),Linux)
|
||||
CPP_PLATFORM_LINK_OPTIONS=-luring
|
||||
endif
|
||||
|
||||
-include $(wildcard ./Obj/*.d)
|
||||
|
||||
ifeq ($(USE_GCC), YES)
|
||||
CPP_LINK=g++ -std=c++20 -g -pthread -o $@ $^ $(CPP_LINK_OPTIONS) $(CPP_PLATFORM_LINK_OPTIONS)
|
||||
else ifeq ($(COVERAGE),NO)
|
||||
CPP_LINK=clang++ -std=c++20 -pthread -g $(CPP_COMPILE_OPTIONS) -o $@ $^ $(CPP_LINK_OPTIONS) $(CPP_PLATFORM_LINK_OPTIONS)
|
||||
else
|
||||
CPP_LINK=clang++ -std=c++20 -pthread -g --coverage -o $@ $^ $(CPP_LINK_OPTIONS) $(CPP_PLATFORM_LINK_OPTIONS)
|
||||
endif
|
||||
|
||||
ifeq ($(USE_GCC), YES)
|
||||
CPP_LINK=g++ -std=c++20 -g -pthread $(CPP_LINK_OPTIONS) $(CPP_PLATFORM_LINK_OPTIONS) -o $@ $^
|
||||
CPP_COMPILE=g++ -std=c++20 -g $(CPP_COMPILE_OPTIONS) $(CPP_PLATFORM_COMPILE_OPTIONS) $(CPP_DEPENDENCY_OPTIONS) -o $@ -c $<
|
||||
else ifeq ($(COVERAGE),NO)
|
||||
CPP_LINK=clang++ -std=c++20 -pthread -g $(CPP_COMPILE_OPTIONS) $(CPP_LINK_OPTIONS) $(CPP_PLATFORM_LINK_OPTIONS) -o $@ $^
|
||||
CPP_COMPILE=clang++ -std=c++20 -g $(CPP_COMPILE_OPTIONS) $(CPP_PLATFORM_COMPILE_OPTIONS) $(CPP_DEPENDENCY_OPTIONS) -o $@ -c $<
|
||||
else
|
||||
CPP_LINK=clang++ -std=c++20 -pthread -g --coverage $(CPP_LINK_OPTIONS) $(CPP_PLATFORM_LINK_OPTIONS) -o $@ $^
|
||||
endif
|
||||
|
||||
ifeq ($(USE_GCC), YES)
|
||||
CPP_COMPILE=g++ -std=c++20 -g $(CPP_COMPILE_OPTIONS) -o $@ -c $<
|
||||
else ifeq ($(COVERAGE),NO)
|
||||
CPP_COMPILE=clang++ -std=c++20 -g $(CPP_COMPILE_OPTIONS) -o $@ -c $<
|
||||
else
|
||||
CPP_COMPILE=clang++ -std=c++20 -g -fprofile-arcs -ftest-coverage $(CPP_COMPILE_OPTIONS) -o $@ -c $<
|
||||
CPP_COMPILE=clang++ -std=c++20 -g -fprofile-arcs -ftest-coverage $(CPP_COMPILE_OPTIONS) $(CPP_PLATFORM_COMPILE_OPTIONS) $(CPP_DEPENDENCY_OPTIONS) -o $@ -c $<
|
||||
endif
|
||||
|
||||
@@ -45,11 +45,12 @@ for CPP_ADD in "${CPP_ADDS[@]}"; do
|
||||
done
|
||||
|
||||
CPP_FILE_LIST=("${CPP_FILES[@]}")
|
||||
printf -v CPP_FILES "%s\n" "${CPP_FILE_LIST[@]}"
|
||||
CPP_FILES=${CPP_FILES%?}
|
||||
|
||||
O_FILES=`echo "${CPP_FILES}" | sed -E -e 's%([^/]*/)*([^/]+).cpp%./Obj/\2.o%g'`
|
||||
O_FILES=`echo ${O_FILES}`
|
||||
O_FILE_LIST=()
|
||||
for CPP_FILE in "${CPP_FILE_LIST[@]}"; do
|
||||
O_FILE="$(printf "%s\n" "${CPP_FILE}" | sed -E -e 's%([^/]*/)*([^/]+).cpp%./Obj/\2.o%g')"
|
||||
O_FILE_LIST+=("${O_FILE}")
|
||||
done
|
||||
O_FILES="${O_FILE_LIST[*]}"
|
||||
|
||||
printf "%s\n" "${CPP_FILE_LIST[@]}" > vmake.txt
|
||||
#>
|
||||
@@ -84,8 +85,10 @@ all:pre-build <#= ${TARGETS[@]} #>
|
||||
|
||||
<#= $CPP_TARGET #>:<#= ${O_FILES} #>
|
||||
$(CPP_LINK)
|
||||
<#echo "${CPP_FILES}" | while read -r CPP_FILE; do#>
|
||||
<#for CPP_FILE_INDEX in "${!CPP_FILE_LIST[@]}"; do#>
|
||||
<#CPP_FILE="${CPP_FILE_LIST[$CPP_FILE_INDEX]}"#>
|
||||
<#O_FILE="${O_FILE_LIST[$CPP_FILE_INDEX]}"#>
|
||||
|
||||
./Obj/<#= `vutil_CppDependencies "${CPP_COMPILE_OPTIONS}" ${CPP_FILE}` #>
|
||||
<#= ${O_FILE} #>: <#= ${CPP_FILE} #>
|
||||
$(CPP_COMPILE)
|
||||
<#done#>
|
||||
|
||||
Reference in New Issue
Block a user