Index: generate_gypi.sh |
diff --git a/generate_gypi.sh b/generate_gypi.sh |
index a00618861d4935112736d87d34de408878736f43..0a316602b9cadd0648441ab5bc4345f893e047aa 100755 |
--- a/generate_gypi.sh |
+++ b/generate_gypi.sh |
@@ -249,37 +249,51 @@ function convert_srcs_to_project_files { |
fi |
# Write a single .gni file that includes all source files for all archs. |
- if [ 0 -ne ${#x86_list} ]; then |
- local c_sources=$(echo "$source_list" | egrep '.(c|h)$') |
- local assembly_sources=$(echo "$source_list" | egrep '.asm$') |
- local mmx_sources=$(echo "$intrinsic_list" | grep '_mmx\.c$') |
- local sse2_sources=$(echo "$intrinsic_list" | grep '_sse2\.c$') |
- local sse3_sources=$(echo "$intrinsic_list" | grep '_sse3\.c$') |
- local ssse3_sources=$(echo "$intrinsic_list" | grep '_ssse3\.c$') |
- local sse4_1_sources=$(echo "$intrinsic_list" | grep '_sse4\.c$') |
- local avx_sources=$(echo "$intrinsic_list" | grep '_avx\.c$') |
- local avx2_sources=$(echo "$intrinsic_list" | grep '_avx2\.c$') |
- |
- write_gni c_sources $2 "$BASE_DIR/libvpx_srcs.gni" |
- write_gni assembly_sources $2_assembly "$BASE_DIR/libvpx_srcs.gni" |
- write_gni mmx_sources $2_mmx "$BASE_DIR/libvpx_srcs.gni" |
- write_gni sse2_sources $2_sse2 "$BASE_DIR/libvpx_srcs.gni" |
- write_gni sse3_sources $2_sse3 "$BASE_DIR/libvpx_srcs.gni" |
- write_gni ssse3_sources $2_ssse3 "$BASE_DIR/libvpx_srcs.gni" |
- write_gni sse4_1_sources $2_sse4_1 "$BASE_DIR/libvpx_srcs.gni" |
- write_gni avx_sources $2_avx "$BASE_DIR/libvpx_srcs.gni" |
- write_gni avx2_sources $2_avx2 "$BASE_DIR/libvpx_srcs.gni" |
- else |
- local c_sources=$(echo "$source_list" | egrep '.(c|h)$') |
- local assembly_sources=$(echo -e "$source_list\n$intrinsic_list" | \ |
- egrep '.asm$') |
- local neon_sources=$(echo "$intrinsic_list" | grep '_neon\.c$') |
- write_gni c_sources $2 "$BASE_DIR/libvpx_srcs.gni" |
- write_gni assembly_sources $2_assembly "$BASE_DIR/libvpx_srcs.gni" |
- if [ 0 -ne ${#neon_sources} ]; then |
- write_gni neon_sources $2_neon "$BASE_DIR/libvpx_srcs.gni" |
+ # First all the non-specific files not found in vp8, vp9, or vpx_dsp |
+ local c_sources=$(echo "$source_list" | \ |
+ egrep -v "^vp(8|9|x_dsp)" | \ |
+ egrep ".(c|h)$") |
+ local assembly_sources=$(echo "$source_list" | \ |
+ egrep -v "^vp(8|9|x_dsp)" | \ |
+ egrep ".asm$") |
+ write_gni c_sources $2 "$BASE_DIR/libvpx_srcs.gni" |
+ write_gni assembly_sources $2_assembly "$BASE_DIR/libvpx_srcs.gni" |
+ |
+ # Break out the remaining files by specific targets. GN does not |
+ # disambiguate by path so this is the only way to avoid name conflicts. |
+ for library in vp8 vp9 vpx_dsp; do |
+ if [ 0 -ne ${#x86_list} ]; then |
+ local c_sources=$(echo "$source_list" | egrep "^${library}.+.(c|h)$") |
+ local assembly_sources=$(echo "$source_list" | egrep "^${library}.+.asm$") |
+ local mmx_sources=$(echo "$intrinsic_list" | egrep "^${library}.+_mmx\.c$") |
+ local sse2_sources=$(echo "$intrinsic_list" | egrep "^${library}.+_sse2\.c$") |
+ local sse3_sources=$(echo "$intrinsic_list" | egrep "^${library}.+_sse3\.c$") |
+ local ssse3_sources=$(echo "$intrinsic_list" | egrep "^${library}.+_ssse3\.c$") |
+ local sse4_1_sources=$(echo "$intrinsic_list" | egrep "^${library}.+_sse4\.c$") |
+ local avx_sources=$(echo "$intrinsic_list" | egrep "^${library}.+_avx\.c$") |
+ local avx2_sources=$(echo "$intrinsic_list" | egrep "^${library}.+_avx2\.c$") |
+ |
+ write_gni c_sources ${library}_$2 "$BASE_DIR/libvpx_srcs.gni" |
+ write_gni assembly_sources ${library}_$2_assembly "$BASE_DIR/libvpx_srcs.gni" |
+ write_gni mmx_sources ${library}_$2_mmx "$BASE_DIR/libvpx_srcs.gni" |
+ write_gni sse2_sources ${library}_$2_sse2 "$BASE_DIR/libvpx_srcs.gni" |
+ write_gni sse3_sources ${library}_$2_sse3 "$BASE_DIR/libvpx_srcs.gni" |
+ write_gni ssse3_sources ${library}_$2_ssse3 "$BASE_DIR/libvpx_srcs.gni" |
+ write_gni sse4_1_sources ${library}_$2_sse4_1 "$BASE_DIR/libvpx_srcs.gni" |
+ write_gni avx_sources ${library}_$2_avx "$BASE_DIR/libvpx_srcs.gni" |
+ write_gni avx2_sources ${library}_$2_avx2 "$BASE_DIR/libvpx_srcs.gni" |
+ else |
+ local c_sources=$(echo "$source_list" | egrep "^${library}.+.(c|h)$") |
+ local assembly_sources=$(echo -e "$source_list\n$intrinsic_list" | \ |
+ egrep "^${library}.+.asm$") |
+ local neon_sources=$(echo "$intrinsic_list" | egrep "^${library}.+_neon\.c$") |
+ write_gni c_sources ${library}_$2 "$BASE_DIR/libvpx_srcs.gni" |
+ write_gni assembly_sources ${library}_$2_assembly "$BASE_DIR/libvpx_srcs.gni" |
+ if [ 0 -ne ${#neon_sources} ]; then |
+ write_gni neon_sources ${library}_$2_neon "$BASE_DIR/libvpx_srcs.gni" |
+ fi |
fi |
- fi |
+ done |
} |
# Clean files from previous make. |