[gen.py] Use relative -I switches and source paths

This both makes the ninja files relocatable after gen.py
and fixes the case where the output directory was specified
as a relative path (which previous didn't have the right -I).

Change-Id: I0b01677927a6c7733ae5cb2f731d5d62cb2200ab
Reviewed-on: https://gn-review.googlesource.com/c/gn/+/5040
Commit-Queue: Petr Hosek <phosek@google.com>
Reviewed-by: Petr Hosek <phosek@google.com>
diff --git a/build/gen.py b/build/gen.py
index 97e5adb..3d356c7 100755
--- a/build/gen.py
+++ b/build/gen.py
@@ -205,7 +205,9 @@
         'build %s: %s %s' % (src_to_obj(src_file),
                              settings['tool'],
                              escape_path_ninja(
-                                 os.path.join(REPO_ROOT, src_file))),
+                                 os.path.relpath(
+                                     os.path.join(REPO_ROOT, src_file),
+                                     os.path.dirname(path)))),
         '  includes = %s' % ' '.join(
             ['-I' + escape_path_ninja(dirname) for dirname in
              include_dirs + settings.get('include_dirs', [])]),
@@ -274,7 +276,7 @@
   cflags_cc = os.environ.get('CXXFLAGS', '').split()
   ldflags = os.environ.get('LDFLAGS', '').split()
   libflags = os.environ.get('LIBFLAGS', '').split()
-  include_dirs = [REPO_ROOT, os.path.dirname(path)]
+  include_dirs = [os.path.relpath(REPO_ROOT, os.path.dirname(path)), '.']
   libs = []
 
   if not platform.is_msvc():