[ffigen] Allow user compiler options to override built-in options (#495)

* Change compiler option order so that user options can override built-in options.

* Revert unnecessary order change
diff --git a/pkgs/ffigen/CHANGELOG.md b/pkgs/ffigen/CHANGELOG.md
index 40dd82e..15ed965 100644
--- a/pkgs/ffigen/CHANGELOG.md
+++ b/pkgs/ffigen/CHANGELOG.md
@@ -1,3 +1,8 @@
+# 7.2.3
+
+- Change compiler option order so that user options can override built-in
+  options.
+
 # 7.2.2
 
 - Added newer versions of LLVM, to default `linuxDylibLocations`.
diff --git a/pkgs/ffigen/lib/src/header_parser/parser.dart b/pkgs/ffigen/lib/src/header_parser/parser.dart
index 080d2f8..b45b062 100644
--- a/pkgs/ffigen/lib/src/header_parser/parser.dart
+++ b/pkgs/ffigen/lib/src/header_parser/parser.dart
@@ -56,15 +56,15 @@
   final index = clang.clang_createIndex(0, 0);
 
   Pointer<Pointer<Utf8>> clangCmdArgs = nullptr;
-  final compilerOpts = List<String>.from(config.compilerOpts);
+  final compilerOpts = <String>[];
 
-  /// Add compiler opt for comment parsing for clang based on config.
+  // Add compiler opt for comment parsing for clang based on config.
   if (config.commentType.length != CommentLength.none &&
       config.commentType.style == CommentStyle.any) {
     compilerOpts.add(strings.fparseAllComments);
   }
 
-  /// If the config targets Objective C, add a compiler opt for it.
+  // If the config targets Objective C, add a compiler opt for it.
   if (config.language == Language.objc) {
     compilerOpts.addAll([
       ...strings.clangLangObjC,
@@ -72,6 +72,9 @@
     ]);
   }
 
+  // Add the user options last so they can override any other options.
+  compilerOpts.addAll(config.compilerOpts);
+
   _logger.fine('CompilerOpts used: $compilerOpts');
   clangCmdArgs = createDynamicStringArray(compilerOpts);
   final cmdLen = compilerOpts.length;
diff --git a/pkgs/ffigen/pubspec.yaml b/pkgs/ffigen/pubspec.yaml
index 2a94b85..4c109ec 100644
--- a/pkgs/ffigen/pubspec.yaml
+++ b/pkgs/ffigen/pubspec.yaml
@@ -3,7 +3,7 @@
 # BSD-style license that can be found in the LICENSE file.
 
 name: ffigen
-version: 7.2.2
+version: 7.2.3
 description: Generator for FFI bindings, using LibClang to parse C header files.
 repository: https://github.com/dart-lang/ffigen