diff --git a/blinq.gyp b/blinq.gyp
new file mode 100644
index 0000000000000000000000000000000000000000..bae3b287ac6fc6aee2b4998200d6c6088a8edd27
--- /dev/null
+++ b/blinq.gyp
@@ -0,0 +1,15 @@
+{
+  'variables': {
+    'use_aura%': 1,
+  },
+  'targets': [
+  {
+    'target_name': 'blinq',
+    'type': 'none',
+    'dependencies': [
+      'process/process.gyp:*',
+      'lib/lib.gyp:*',
+    ],
+  }
+  ]
+}
diff --git a/blinq.gypi b/blinq.gypi
new file mode 100644
index 0000000000000000000000000000000000000000..dcdba86add097f5b3427ed4fbee4b6c5c845f27b
--- /dev/null
+++ b/blinq.gypi
@@ -0,0 +1,93 @@
+{
+  'variables': {
+    'blink_process_product_name': 'Blink Process',
+# Define used when building the user agent. Pass as recent enough chrome with an irrealistic minor version.
+      'user_agent_version': '22.42.5.2',
+      'conditions': [
+        ['OS=="linux"', {
+          'use_custom_freetype%': 1,
+        }, {
+          'use_custom_freetype%': 0,
+        }],
+        ],
+  },
+    'dependencies': [
+      '<(chromium_src_dir)/content/content.gyp:content',
+      '<(chromium_src_dir)/content/content_resources.gyp:content_resources',
+      '<(chromium_src_dir)/base/base.gyp:base',
+      '<(chromium_src_dir)/base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
+      '<(chromium_src_dir)/build/temp_gyp/googleurl.gyp:googleurl',
+      '<(chromium_src_dir)/ipc/ipc.gyp:ipc',
+      '<(chromium_src_dir)/media/media.gyp:media',
+      '<(chromium_src_dir)/net/net.gyp:net',
+      '<(chromium_src_dir)/net/net.gyp:net_resources',
+      '<(chromium_src_dir)/skia/skia.gyp:skia',
+      '<(chromium_src_dir)/ui/gl/gl.gyp:gl',
+      '<(chromium_src_dir)/ui/ui.gyp:ui',
+      '<(chromium_src_dir)/v8/tools/gyp/v8.gyp:v8',
+      '<(chromium_src_dir)/webkit/support/webkit_support.gyp:webkit_resources',
+      '<(chromium_src_dir)/webkit/support/webkit_support.gyp:webkit_support',
+      '<(chromium_src_dir)/third_party/WebKit/Source/WebKit/chromium/WebKit.gyp:webkit',
+      '<(chromium_src_dir)/third_party/WebKit/Source/WebKit/chromium/WebKit.gyp:webkit_test_support',
+    ],
+    'include_dirs': [
+      '<(chromium_src_dir)',
+    ],
+    'msvs_settings': {
+      'VCLinkerTool': {
+        'SubSystem': '2',  # Set /SUBSYSTEM:WINDOWS
+      },
+    },
+    'conditions': [
+      ['OS=="win" and win_use_allocator_shim==1', {
+        'dependencies': [
+          '<(chromium_src_dir)/base/allocator/allocator.gyp:allocator',
+        ],
+      }],
+    ['OS=="win"', {
+      'resource_include_dirs': [
+        '<(SHARED_INTERMEDIATE_DIR)/webkit',
+      ],
+      'dependencies': [
+        '<(DEPTH)/webkit/support/webkit_support.gyp:webkit_strings',
+      ],
+      'configurations': {
+        'Debug_Base': {
+          'msvs_settings': {
+            'VCLinkerTool': {
+              'LinkIncremental': '<(msvs_large_module_debug_link_mode)',
+            },
+          },
+        },
+      },
+# TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
+      'msvs_disabled_warnings': [ 4267, ],
+    }],  # OS=="win"
+  ['OS=="linux"', {
+    'dependencies': [
+      '<(chromium_src_dir)/build/linux/system.gyp:fontconfig',
+    ],
+  }],
+    ['os_posix==1 and use_aura==1 and linux_use_tcmalloc==1', {
+      'dependencies': [
+# This is needed by content/app/content_main_runner.cc
+        '<(chromium_src_dir)/base/allocator/allocator.gyp:allocator',
+      ],
+    }],
+    ['use_aura==1', {
+      'dependencies': [
+        '<(chromium_src_dir)/ui/aura/aura.gyp:aura',
+        '<(chromium_src_dir)/ui/base/strings/ui_strings.gyp:ui_strings',
+        '<(chromium_src_dir)/ui/views/controls/webview/webview.gyp:webview',
+        '<(chromium_src_dir)/ui/views/views.gyp:views',
+        '<(chromium_src_dir)/ui/views/views.gyp:views_test_support',
+        '<(chromium_src_dir)/ui/ui.gyp:ui_resources',
+      ],
+    }],  # use_aura==1
+  ['use_custom_freetype==1', {
+    'dependencies': [
+      '<(chromium_src_dir)/third_party/freetype2/freetype2.gyp:freetype2',
+    ],
+  }],
+    ],
+}
diff --git a/blinq.pri b/blinq.pri
deleted file mode 100644
index 6f81866f235297a1f41b9ff8f35beba3842da6a3..0000000000000000000000000000000000000000
--- a/blinq.pri
+++ /dev/null
@@ -1,275 +0,0 @@
-CHROMIUM_SRC_DIR = $$(CHROMIUM_SRC_DIR)
-isEmpty(CHROMIUM_SRC_DIR): error("Set CHROMIUM_SRC_DIR please...")
-
-INCLUDEPATH += $$CHROMIUM_SRC_DIR/
-
-CONFIG(debug, debug|release): BUILD_DIR = $$CHROMIUM_SRC_DIR/out/Debug
-else: BUILD_DIR = $$CHROMIUM_SRC_DIR/out/Release
-
-exists($$BUILD_DIR/obj/content/libcontent_app.a): CONFIG += chromium_is_static
-
-chromium_is_static {
-    cr_libs = \
-        obj/media/libmedia_sse.a \
-        obj/third_party/icu/libicuuc.a \
-        obj/third_party/libjingle/libjingle.a \
-        obj/skia/libskia_opts.a \
-        obj/third_party/icu/libicudata.a \
-        obj/third_party/webrtc/modules/librtp_rtcp.a \
-        obj/third_party/libvpx/libvpx.a \
-        obj/webkit/support/libglue.a \
-        obj/sandbox/libseccomp_bpf.a \
-        obj/third_party/libwebp/libwebp_utils.a \
-        obj/third_party/WebKit/Source/WTF/WTF.gyp/libwtf.a \
-        obj/third_party/webrtc/modules/libG722.a \
-        obj/third_party/libvpx/libvpx_intrinsics.a \
-        obj/third_party/webrtc/modules/libCNG.a \
-        obj/third_party/WebKit/Source/WebCore/WebCore.gyp/libwebcore_rendering.a \
-        obj/ppapi/libppapi_unittest_shared.a \
-        obj/media/libyuv_convert_simd_x86.a \
-        obj/gpu/libgles2_cmd_helper.a \
-        obj/third_party/smhasher/libcityhash.a \
-        obj/third_party/webrtc/modules/libudp_transport.a \
-        obj/third_party/webrtc/common_audio/libresampler.a \
-        obj/content/libcontent_gpu.a \
-        obj/ipc/libipc.a \
-        obj/third_party/libxslt/libxslt.a \
-        obj/third_party/hyphen/libhyphen.a \
-        obj/third_party/webrtc/modules/video_coding/utility/libvideo_coding_utility.a \
-        obj/third_party/ots/libots.a \
-        obj/base/libsymbolize.a \
-        obj/skia/libskia_opts_ssse3.a \
-        obj/third_party/protobuf/libprotobuf_lite.a \
-        obj/third_party/webrtc/modules/libaudio_coding_module.a \
-        obj/ui/surface/libsurface.a \
-        obj/third_party/WebKit/Source/WebKit/chromium/libwebkit.a \
-        obj/third_party/jsoncpp/libjsoncpp.a \
-        obj/google_apis/libgoogle_apis.a \
-        obj/webkit/gpu/libwebkit_gpu.a \
-        obj/third_party/WebKit/Source/WebKit/chromium/libwebkit_wtf_support.a \
-        obj/v8/tools/gyp/libv8_snapshot.a \
-        obj/ui/native_theme/libnative_theme.a \
-        obj/third_party/webrtc/modules/libremote_bitrate_estimator.a \
-        obj/content/libcontent_utility.a \
-        obj/base/libbase_static.a \
-        obj/third_party/webrtc/modules/libwebrtc_video_coding.a \
-        obj/webkit/compositor_bindings/libwebkit_compositor_support.a \
-        obj/third_party/libevent/libevent.a \
-        obj/content/libcontent_worker.a \
-        obj/build/linux/libpci.a \
-        obj/ui/gl/libgl_wrapper.a \
-        obj/third_party/angle/src/libtranslator_common.a \
-        obj/third_party/WebKit/Source/WebKit/chromium/libwebkit_test_support.a \
-        obj/content/libcontent_shell_lib.a \
-        obj/third_party/libpng/libpng.a \
-        obj/third_party/webrtc/modules/libG711.a \
-        obj/third_party/opus/libopus.a \
-        obj/content/libcontent_ppapi_plugin.a \
-        obj/ui/snapshot/libsnapshot.a \
-        obj/webkit/support/libwebkit_media.a \
-        obj/third_party/libwebp/libwebp_dsp.a \
-        obj/third_party/harfbuzz-ng/libharfbuzz-ng.a \
-        obj/base/allocator/liballocator_extension_thunks.a \
-        obj/third_party/libjingle/libjingle_webrtc.a \
-        obj/third_party/webrtc/voice_engine/libvoice_engine_core.a \
-        obj/cc/libcc.a \
-        obj/third_party/libjingle/libjingle_p2p_constants.a \
-        obj/media/libyuv_convert.a \
-        obj/third_party/leveldatabase/libleveldatabase.a \
-        obj/net/libnet_test_support.a \
-        obj/third_party/webrtc/modules/libiLBC.a \
-        obj/third_party/webrtc/modules/libpaced_sender.a \
-        obj/gpu/libdisk_cache_proto.a \
-        obj/sandbox/libsuid_sandbox_client.a \
-        obj/third_party/webrtc/modules/libiSACFix.a \
-        obj/third_party/webrtc/modules/libvideo_capture_module.a \
-        obj/third_party/angle/src/libpreprocessor.a \
-        obj/gpu/libgpu_ipc.a \
-        obj/third_party/webrtc/modules/video_coding/codecs/vp8/libwebrtc_vp8.a \
-        obj/ppapi/libppapi_host.a \
-        obj/third_party/WebKit/Source/ThirdParty/glu/libtess.a \
-        obj/dbus/libdbus.a \
-        obj/third_party/webrtc/modules/libvideo_processing.a \
-        obj/webkit/support/libwebkit_base.a \
-        obj/gpu/libcommand_buffer_client.a \
-        obj/gpu/libcommand_buffer_common.a \
-        obj/third_party/libwebp/libwebp_enc.a \
-        obj/third_party/WebKit/Source/WebCore/WebCore.gyp/libwebcore_html.a \
-        obj/base/libtest_support_base.a \
-        obj/ppapi/libppapi_ipc.a \
-        obj/sdch/libsdch.a \
-        obj/third_party/angle/src/libtranslator_glsl.a \
-        obj/ppapi/libppapi_shared.a \
-        obj/testing/libgmock.a \
-        obj/gpu/libgles2_implementation.a \
-        obj/sandbox/libc_urandom_override.a \
-        obj/third_party/libXNVCtrl/libXNVCtrl.a \
-        obj/content/browser/speech/proto/libspeech_proto.a \
-        obj/third_party/webrtc/modules/libvideo_render_module.a \
-        obj/build/temp_gyp/libgoogleurl.a \
-        obj/webkit/support/libuser_agent.a \
-        obj/ui/libui.a \
-        obj/testing/libgtest.a \
-        obj/third_party/webrtc/modules/libwebrtc_opus.a \
-        obj/base/libxdg_mime.a \
-        obj/content/libcontent_browser.a \
-        obj/third_party/webrtc/modules/libNetEq.a \
-        obj/third_party/webrtc/video_engine/libvideo_engine_core.a \
-        obj/base/third_party/dynamic_annotations/libdynamic_annotations.a \
-        obj/third_party/WebKit/Source/WebCore/WebCore.gyp/libwebcore_remaining.a \
-        obj/third_party/sfntly/libsfntly.a \
-        obj/base/libbase.a \
-        obj/third_party/WebKit/Source/WebCore/WebCore.gyp/libwebcore_svg.a \
-        obj/crypto/libcrcrypto.a \
-        obj/third_party/WebKit/Source/WebCore/WebCore.gyp/libwebcore_dom.a \
-        obj/media/libshared_memory_support.a \
-        obj/third_party/qcms/libqcms.a \
-        obj/third_party/webrtc/modules/libPCM16B.a \
-        obj/ui/libshell_dialogs.a \
-        obj/third_party/webrtc/modules/libvideo_processing_sse2.a \
-        obj/third_party/webrtc/modules/libbitrate_controller.a \
-        obj/sandbox/libsandbox_services.a \
-        obj/third_party/libwebp/libwebp_demux.a \
-        obj/third_party/sqlite/libsqlite3.a \
-        obj/third_party/webrtc/modules/libmedia_file.a \
-        obj/third_party/libjpeg_turbo/libjpeg_turbo.a \
-        obj/third_party/modp_b64/libmodp_b64.a \
-        obj/third_party/libvpx/libvpx_asm_offsets_vp9.a \
-        obj/third_party/webrtc/modules/libaudio_processing.a \
-        obj/ipc/libtest_support_ipc.a \
-        obj/build/linux/libgio.a \
-        obj/third_party/flac/libflac.a \
-        obj/third_party/speex/libspeex.a \
-        obj/third_party/re2/libre2.a \
-        obj/net/third_party/nss/libcrssl.a \
-        obj/jingle/libjingle_glue.a \
-        obj/third_party/libyuv/libyuv.a \
-        obj/third_party/libjingle/libpeerconnection.a \
-        obj/content/libcontent_common.a \
-        obj/base/libbase_i18n.a \
-        obj/third_party/libxml/libxml2.a \
-        obj/third_party/WebKit/Source/WebCore/WebCore.gyp/libwebcore_bindings.a \
-        obj/ppapi/libppapi_proxy.a \
-        obj/third_party/libwebp/libwebp_dec.a \
-        obj/third_party/webrtc/modules/libiSAC.a \
-        obj/gpu/libgles2_c_lib.a \
-        obj/third_party/webrtc/modules/libaudio_conference_mixer.a \
-        obj/net/libhttp_server.a \
-        obj/sandbox/linux/seccomp-legacy/libseccomp_sandbox.a \
-        obj/webkit/support/libwebkit_support_common.a \
-        obj/third_party/WebKit/Source/WebCore/WebCore.gyp/libwebcore_test_support.a \
-        obj/content/libcontent_app.a \
-        obj/third_party/webrtc/common_video/libcommon_video.a \
-        obj/third_party/libsrtp/libsrtp.a \
-        obj/printing/libprinting.a \
-        obj/content/libcontent_renderer.a \
-        obj/third_party/WebKit/Tools/DumpRenderTree/DumpRenderTree.gyp/libTestRunner.a \
-        obj/third_party/webrtc/modules/libwebrtc_i420.a \
-        obj/third_party/iccjpeg/libiccjpeg.a \
-        obj/third_party/icu/libicui18n.a \
-        obj/webkit/support/libwebkit_support.a \
-        obj/third_party/WebKit/Source/Platform/Platform.gyp/libwebkit_platform.a \
-        obj/content/libcontent_plugin.a \
-        obj/third_party/webrtc/modules/libaudio_device.a \
-        obj/third_party/WebKit/Source/WebCore/WebCore.gyp/libwebcore_platform_geometry.a \
-        obj/skia/libskia.a \
-        obj/webkit/support/libwebkit_storage.a \
-        obj/webkit/compositor_bindings/libwebkit_compositor_bindings.a \
-        obj/third_party/WebKit/Source/yarr/libyarr.a \
-        obj/base/allocator/liballocator.a \
-        obj/media/libdiffer_block_sse2.a \
-        obj/third_party/webrtc/system_wrappers/source/libsystem_wrappers.a \
-        obj/third_party/webrtc/common_audio/libsignal_processing.a \
-        obj/third_party/webrtc/modules/libaudio_processing_sse2.a \
-        obj/third_party/libvpx/libvpx_asm_offsets.a \
-        obj/third_party/WebKit/Source/WebCore/WebCore.gyp/libwebcore_platform.a \
-        obj/ui/libui_test_support.a \
-        obj/gpu/command_buffer/libgles2_utils.a \
-        obj/net/libnet.a \
-        obj/v8/tools/gyp/libv8_base.a \
-        obj/webkit/support/libwebkit_support_gfx.a \
-        obj/content/libtest_support_content.a \
-        obj/third_party/webrtc/common_audio/libvad.a \
-        obj/net/libnet_with_v8.a \
-        obj/third_party/ffmpeg/libffmpeg.a \
-        obj/gpu/libcommand_buffer_service.a \
-        obj/third_party/webrtc/modules/libwebrtc_utility.a \
-        obj/third_party/v8-i18n/build/libv8-i18n.a \
-        obj/sql/libsql.a \
-        obj/media/libmedia.a \
-        obj/third_party/zlib/libchrome_zlib.a \
-        obj/components/libtracing.a
-
-    LIBS += -Wl,--start-group
-    for (l, cr_libs) {
-        LIBS += $$BUILD_DIR/$$l
-    }
-    LIBS += -Wl,--end-group
-
-    cr_sh_libs = -lX11 -lXcursor -lXrandr -lXrender -lXcomposite -lrt -ldl \
-        -lgmodule-2.0 -lgobject-2.0 -lgthread-2.0 -lglib-2.0 -lXtst \
-        -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 \
-        -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfreetype \
-        -lfontconfig -lXi -lasound -lXdamage -lXext -lXfixes -lnss3 -lnssutil3 \
-        -lsmime3 -lplds4 -lplc4 -lnspr4 -lgconf-2 -lresolv -ldbus-1 -lcups \
-        -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lgnutls -lgcrypt -lz \
-        -lpthread -lm -lcrypt -L/lib/x86_64-linux-gnu -lexpat -ludev
-
-    LIBS += $$cr_sh_libs
-
-} else {
-    DIRS = lib
-    CONTENT_LIB = -lcontent
-}
-
-for (dir, DIRS) {
-    QMAKE_LIBDIR += $$BUILD_DIR/$$dir
-}
-
-QMAKE_CXXFLAGS += -D_FILE_OFFSET_BITS=64 -DUSE_LINUX_BREAKPAD -DDISABLE_NACL -DCHROMIUM_BUILD -DUSE_DEFAULT_RENDER_THEME=1 -DUSE_LIBJPEG_TURBO=1 -DUSE_NSS=1 -DENABLE_ONE_CLICK_SIGNIN -DGTK_DISABLE_SINGLE_INCLUDES=1 -DENABLE_REMOTING=1 -DENABLE_WEBRTC=1 -DENABLE_CONFIGURATION_POLICY -DENABLE_INPUT_SPEECH -DENABLE_NOTIFICATIONS -DENABLE_GPU=1 -DENABLE_EGLIMAGE=1 -DENABLE_TASK_MANAGER=1 -DENABLE_EXTENSIONS=1 -DENABLE_PLUGIN_INSTALLATION=1 -DENABLE_PLUGINS=1 -DENABLE_SESSION_SERVICE=1 -DENABLE_THEMES=1 -DENABLE_BACKGROUND=1 -DENABLE_AUTOMATION=1 -DENABLE_GOOGLE_NOW=1 -DENABLE_LANGUAGE_DETECTION=1 -DENABLE_PRINTING=1 -DENABLE_CAPTIVE_PORTAL_DETECTION=1 -DENABLE_MANAGED_USERS=1 '-DCONTENT_SHELL_VERSION="19.77.34.5"' -DGL_GLEXT_PROTOTYPES -DLIBPEERCONNECTION_LIB=1 -DSK_BUILD_NO_IMAGE_ENCODE -DSK_DEFERRED_CANVAS_USES_GPIPE=1 '-DGR_GL_CUSTOM_SETUP_HEADER="GrGLConfig_chrome.h"' -DGR_AGGRESSIVE_SHADER_OPTS=1 -DSK_ENABLE_INST_COUNT=0 -DSK_USE_POSIX_THREADS -DU_USING_ICU_NAMESPACE=0 -DU_STATIC_IMPLEMENTATION -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -D_FORTIFY_SOURCE=2
-
-cr_inc_paths += \
-    ../../third_party/icu/public/common \
-    ../../third_party/icu/public/i18n \
-    ../.. -I../../third_party/khronos \
-    ../../gpu \
-    gen/content \
-    gen/net \
-    ../../skia/config \
-    ../../third_party/skia/src/core \
-    ../../third_party/skia/include/config \
-    ../../third_party/skia/include/core \
-    ../../third_party/skia/include/effects \
-    ../../third_party/skia/include/pdf \
-    ../../third_party/skia/include/gpu \
-    ../../third_party/skia/include/gpu/gl \
-    ../../third_party/skia/include/pipe \
-    ../../third_party/skia/include/ports \
-    ../../third_party/skia/include/utils \
-    ../../skia/ext \
-    gen/ui/gl \
-    ../../third_party/mesa/MesaLib/include \
-    ../../v8/include \
-    gen/webkit \
-    ../../third_party/WebKit/Source/Platform/chromium \
-    ../../third_party/WebKit/Source/Platform/chromium \
-    gen/webcore_headers \
-    ../../third_party/npapi \
-    ../../third_party/npapi/bindings \
-    ../../third_party/WebKit/Tools/DumpRenderTree/chromium/TestRunner/public \
-    ../../third_party/WebKit/Source \
-    ../../third_party/freetype2/include \
-    ../../third_party/freetype2/src/include
-
-for (inc, cr_inc_paths) {
-    INCLUDEPATH += $$BUILD_DIR/$$inc
-}
-
-CONFIG += link_pkgconfig
-PKGCONFIG_PRIVATE = gdk-2.0 gtk+-2.0
-
-DEFINES += QT_NO_KEYWORDS
-
-!chromium_is_static: QMAKE_RPATHDIR += $${BUILD_DIR}/lib
-
-QMAKE_CXXFLAGS += -fno-rtti
diff --git a/blinq.pro b/blinq.pro
deleted file mode 100644
index b995b45fbc4415be702abb4d8a269cb952a63512..0000000000000000000000000000000000000000
--- a/blinq.pro
+++ /dev/null
@@ -1,6 +0,0 @@
-TEMPLATE = subdirs
-
-# Directories
-SUBDIRS = process \
-          lib \
-          example
diff --git a/gyp_blinq b/gyp_blinq
new file mode 100755
index 0000000000000000000000000000000000000000..67213c9cf0fbca13decac35a282dbc7a7cc8d4e7
--- /dev/null
+++ b/gyp_blinq
@@ -0,0 +1,115 @@
+#!/usr/bin/env python
+
+import glob
+import os
+import subprocess
+import sys
+
+#FIXME(pierre): mandatory until we have a git submodule, for now we can't guess where the chromium checkout lives.
+if "CHROMIUM_SRC_DIR" not in os.environ:
+  print "Please set the environment variable CHROMIUM_SRC_DIR to point to your checkout of chromium's 'src' directory"
+  sys.exit(1)
+
+chrome_src = os.path.abspath(os.environ.get('CHROMIUM_SRC_DIR'));
+script_dir = os.path.abspath(os.path.join(chrome_src, 'build'));
+if not os.path.isdir(script_dir):
+  print script_dir + " is not a valid directory"
+  sys.exit(1)
+
+sys.path.insert(0, script_dir)
+import gyp_helper
+sys.path.insert(0, os.path.join(chrome_src, 'tools', 'gyp', 'pylib'))
+import gyp
+
+# Add paths so that pymod_do_main(...) can import files.
+sys.path.insert(1, os.path.join(chrome_src, 'tools', 'grit'))
+sys.path.insert(1, os.path.join(chrome_src, 'third_party', 'WebKit',
+    'Source', 'WebCore', 'WebCore.gyp', 'scripts'))
+
+
+def additional_include_files(args=[]):
+  """
+  Returns a list of additional (.gypi) files to include, without
+  duplicating ones that are already specified on the command line.
+  """
+  # Determine the include files specified on the command line.
+  # This doesn't cover all the different option formats you can use,
+  # but it's mainly intended to avoid duplicating flags on the automatic
+  # makefile regeneration which only uses this format.
+  specified_includes = set()
+  for arg in args:
+    if arg.startswith('-I') and len(arg) > 2:
+      specified_includes.add(os.path.realpath(arg[2:]))
+
+  result = []
+  def AddInclude(path):
+    if os.path.realpath(path) not in specified_includes:
+      result.append(path)
+
+  # Always include common.gypi.
+  AddInclude(os.path.join(script_dir, 'common.gypi'))
+
+  # Optionally add supplemental .gypi files if present.
+  supplements = glob.glob(os.path.join(chrome_src, '*', 'supplement.gypi'))
+  for supplement in supplements:
+    AddInclude(supplement)
+
+  return result
+
+# TODO: later we probably want to hook that up with qmake to allow shadow builds. (Might not play nice with the rest of chromium though)
+def get_output_dir():
+  outdir = os.path.join(os.getcwd(), "out") # Hardcode for now
+  if not os.path.isdir(outdir):
+    os.mkdir(outdir)
+
+  return outdir
+
+if __name__ == '__main__':
+  args = sys.argv[1:]
+
+  gyp_helper.apply_chromium_gyp_env()
+
+  # This could give false positives since it doesn't actually do real option
+  # parsing.  Oh well.
+  gyp_file_specified = False
+  for arg in args:
+    if arg.endswith('.gyp'):
+      gyp_file_specified = True
+      break
+
+  if not gyp_file_specified:
+      args.append(os.path.join(os.getcwd(), 'blinq.gyp'))
+
+  args.extend(['-I' + i for i in additional_include_files(args)])
+
+  # There shouldn't be a circular dependency relationship between .gyp files,
+  # but in Chromium's .gyp files, on non-Mac platforms, circular relationships
+  # currently exist.  The check for circular dependencies is currently
+  # bypassed on other platforms, but is left enabled on the Mac, where a
+  # violation of the rule causes Xcode to misbehave badly.
+  # TODO(mark): Find and kill remaining circular dependencies, and remove this
+  # option.  http://crbug.com/35878.
+  # TODO(tc): Fix circular dependencies in ChromiumOS then add linux2 to the
+  # list.
+  if sys.platform not in ('darwin',):
+    args.append('--no-circular-check')
+
+  #### HACKS START HERE #####
+
+  args.extend(['--generator-output', os.path.abspath(get_output_dir())])
+  args.extend(['-Goutput_dir='+ os.path.abspath(get_output_dir())])
+  args.extend(['-D', 'chromium_src_dir=' + chrome_src])
+  args.extend(['-D', 'webkit_src_dir=' + chrome_src + '/third_party/WebKit'])
+  args.extend(["--depth=" + chrome_src])
+  if "BLINQ_GYP_DEBUG" in os.environ:
+    args.append("--check")
+    args.append("-d all")
+    print args
+
+  ###################################
+
+  print 'Updating projects from gyp files...'
+  #sys.stdout.flush()
+
+  # Off we go...
+  sys.exit(gyp.main(args))
diff --git a/lib/lib.gyp b/lib/lib.gyp
new file mode 100644
index 0000000000000000000000000000000000000000..0f4442f962c659e7fc97ee2c4045917c7c9358a7
--- /dev/null
+++ b/lib/lib.gyp
@@ -0,0 +1,13 @@
+{
+  'targets': [
+  {
+    'target_name': 'blinq',
+      'type': 'shared_library',
+      'includes': [
+        '../blinq.gypi',
+      ],
+      'sources': [
+      ],
+  },
+    ],
+}
diff --git a/process/process.gyp b/process/process.gyp
new file mode 100644
index 0000000000000000000000000000000000000000..c055c2e9f0411750ed5fdbf6d2a9297e2ea50a5f
--- /dev/null
+++ b/process/process.gyp
@@ -0,0 +1,14 @@
+{
+  'targets': [
+  {
+    'target_name': 'blinq_process',
+      'type': 'executable',
+      'includes': [
+        '../blinq.gypi',
+      ],
+      'sources': [
+        'main.cpp',
+      ],
+  },
+    ],
+}
diff --git a/process/process.pro b/process/process.pro
deleted file mode 100644
index 2b949fb011fb925446a2d7b7d643e71b90c59b83..0000000000000000000000000000000000000000
--- a/process/process.pro
+++ /dev/null
@@ -1,7 +0,0 @@
-TEMPLATE = app
-
-include(../blinq.pri)
-
-LIBS += $$CONTENT_LIB
-
-SOURCES += main.cpp