diff --git a/.gitignore b/.gitignore index c66ae6504bef8..a19d20d383802 100644 --- a/.gitignore +++ b/.gitignore @@ -28,9 +28,6 @@ pubspec.lock docs/doxygen/ xcuserdata -third_party/gn/ -third_party/ninja/ninja* - # Miscellaneous *.class *.lock diff --git a/ci/licenses_golden/excluded_files b/ci/licenses_golden/excluded_files index fd649bd5f90a3..9177724366207 100644 --- a/ci/licenses_golden/excluded_files +++ b/ci/licenses_golden/excluded_files @@ -391,6 +391,8 @@ ../../../flutter/sky/tools/objcopy.py ../../../flutter/testing ../../../flutter/third_party/.clang-tidy +../../../flutter/third_party/.gitignore +../../../flutter/third_party/README.md ../../../flutter/third_party/accessibility/README.md ../../../flutter/third_party/accessibility/ax/ax_enum_util_unittest.cc ../../../flutter/third_party/accessibility/ax/ax_event_generator_unittest.cc diff --git a/third_party/.gitignore b/third_party/.gitignore new file mode 100644 index 0000000000000..45ae89eb3d05d --- /dev/null +++ b/third_party/.gitignore @@ -0,0 +1,23 @@ +# Ignore everything by default, as these come from gclient/DEPS. +# We'll explicitly include the folders we want to track. +* + +# Include the .gitignore file itself and .clang-tidy. +!.gitignore +!.clang-tidy +!README.md + +# Allow custom README.flutter files in each folder. +**/README.flutter + +# Include folders that have hand-written code (not DEPS). +!accessibility/ +!canvaskit/ +!ninja/ +!spring_animation/ +!test_shaders/ +!tonic/ +!txt/ +!web_locale_keymap/ +!web_test_fonts/ +!web_unicode/ diff --git a/third_party/README.md b/third_party/README.md new file mode 100644 index 0000000000000..ae435e36c8efb --- /dev/null +++ b/third_party/README.md @@ -0,0 +1,24 @@ +# `flutter/third_party` + +This directory contains third-party code that is a combination of: + +- Code that is vendored into the Flutter repository, from an external source. + For example, we might have `third_party/glfw`, which contains the GLFW + library, vendored from an external repository. + + > 💡 **TIP**: See [`DEPS`](../DEPS) for where these sources are declared. + +- Code that originates from another repository, but is copied (sometimes with + alterations) into the Flutter repository. For an example, see + [`third_party/spring_animation`](spring_animation/README.md). + +- Code that is licensed separately from the rest of the Flutter repository. + For example, see [`third_party/txt`](txt/). + +When adding a new _externally_ sourced third-party library, update `.gitignore`: + +```diff +# Ignores all third_party/ directories except for the ones we want to track. + ++ !{folder_name}/ +```