summaryrefslogtreecommitdiffstats
path: root/build/jni_generator.gypi
Commit message (Collapse)AuthorAgeFilesLines
* Remove most android_webview_build conditions from build.torne2015-03-311-10/+0
| | | | | | | | | | | | | | | | | Remove most references to android_webview_build from the build directory now that we no longer support that build configuration. Fold conditions into their parents where appropriate. Leave the variable itself defined to 0 as not all uses in the tree have been removed yet. A few references are left alone here and will be removed separately in later changes that will be larger refactorings to eliminate other variables. BUG=440793 Review URL: https://codereview.chromium.org/1043913002 Cr-Commit-Position: refs/heads/master@{#323013}
* Make combined native/manual JNI registration work for clang.torne2015-02-241-9/+1
| | | | | | | | | | | | | | | | | Since clang has trouble with aliases for static functions, go back to using a trivial wrapper function instead of an alias. Since there is only one caller of the wrapped, static function, and its address is no longer taken to generate the manual JNI registration table (the wrapper's address is already being taken instead), there's no actual benefit to using an alias anyway, since the compiler will simply inline the static function into the wrapper. BUG=442327,460857 TBR=cjhopman@chromium.org Review URL: https://codereview.chromium.org/953523003 Cr-Commit-Position: refs/heads/master@{#317787}
* Use combined native/manual JNI registration.torne2015-02-201-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a new mode to the JNI generator which emits both native JNI exports and manual registration code, and use this as the default mode (except when compiling with clang as a clang bug prevents this from working at present). Native JNI exports are stripped from binaries by default to enforce that the correct manual registration code is called (and to save increasing the dynamic symbol table size), except for binaries that explicitly opt in to using native exports (i.e. libwebviewchromium). Native exports are not compatible with the crazy linker, so cannot be used universally. The WebView-specific call to InitReplacementClassLoader, required by native export mode, has been moved to base to make it easy for other binaries to experiment with that mode. Manual JNI registration can be disabled with a call to base::android::DisableManualJniRegistration at the beginning of JNI_OnLoad and this has been added to WebView. We plan to refactor the Android library entry points to make it possible to avoid needing this flag by just not calling JNI registration but the work is still ongoing; the flag gets us the desired WebView startup time improvement in the meantime. BUG=442327 Review URL: https://codereview.chromium.org/920883002 Cr-Commit-Position: refs/heads/master@{#317434}
* Refactor lazy JNI registration support.torne@chromium.org2014-08-151-17/+1
| | | | | | | | | | | | | | Rename the "linker_script_copy" target to "android_exports" and move the link_settings clause to that target. This avoids the linker flag being duplicated once for every target which includes jni_generator.gypi, which causes problems on some linker versions. BUG=402003 Review URL: https://codereview.chromium.org/473173004 Cr-Commit-Position: refs/heads/master@{#289941} git-svn-id: svn://svn.chromium.org/chrome/trunk/src@289941 0039d316-1c4b-4281-b951-d872f2087c98
* Don't register JNI methods for the android_webview.mkosiba@chromium.org2014-08-111-0/+29
| | | | | | | | | | | | | | Rather than registering all jni bindings at startup, only get references to the class object for those files which require bindings. All others are satisfied by exporting symbols which can be found automatically by the VM. BUG=402003 Review URL: https://codereview.chromium.org/454923002 Cr-Commit-Position: refs/heads/master@{#288685} git-svn-id: svn://svn.chromium.org/chrome/trunk/src@288685 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 275652 "Remove unneeded JNI registrations."torne@chromium.org2014-06-091-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | This has broken the Android WebView build by introducing an absolute path into the generated makefiles, rendering them nonportable. > Remove unneeded JNI registrations. > > Rather than registering all jni bindings at startup, only get references > to the class object for those files which require bindings. All others > are satisfied by exporting symbols which can be found automatically by > dalvik. > > This patch replaces excldue-libs=ALL with ld version script to strip unwanted > symbols: https://sourceware.org/binutils/docs-2.24/ld/VERSION.html#VERSION > > BUG= > > Review URL: https://codereview.chromium.org/147533004 TBR=sl.ostapenko@samsung.com Review URL: https://codereview.chromium.org/326603002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@275796 0039d316-1c4b-4281-b951-d872f2087c98
* Remove unneeded JNI registrations.sl.ostapenko@samsung.com2014-06-071-0/+1
| | | | | | | | | | | | | | | | Rather than registering all jni bindings at startup, only get references to the class object for those files which require bindings. All others are satisfied by exporting symbols which can be found automatically by dalvik. This patch replaces excldue-libs=ALL with ld version script to strip unwanted symbols: https://sourceware.org/binutils/docs-2.24/ld/VERSION.html#VERSION BUG= Review URL: https://codereview.chromium.org/147533004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@275652 0039d316-1c4b-4281-b951-d872f2087c98
* Android: changes the JNI generator to use long by default.bulach@chromium.org2014-02-061-1/+1
| | | | | | | | BUG=317523 Review URL: https://codereview.chromium.org/131883002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@249461 0039d316-1c4b-4281-b951-d872f2087c98
* Android: sync up latest JNI generator changes from downstream.bulach@chromium.org2014-01-081-0/+6
| | | | | | | | | | | | | Quite a few changes were made downstream, keep them in sync: - specify the #include files. - inject the common DCHECKs for class and native pointers. - inject the check exception call. BUG= Review URL: https://codereview.chromium.org/115103002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@243558 0039d316-1c4b-4281-b951-d872f2087c98
* Have jni_generator.gypi specify include_dirs to dependent targets.blundell@chromium.org2013-12-171-0/+5
| | | | | | | | | | | | Rather than each dependent target of a target that generates jni headers having to specify the appropriate include_dir manually, jni_generator.gypi can do it via direct_dependent_settings. TBR=darin@chromium.org Review URL: https://codereview.chromium.org/111493006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@241216 0039d316-1c4b-4281-b951-d872f2087c98
* Android: adds ptr_type to jni_generator.bulach@chromium.org2013-11-051-0/+3
| | | | | | | | | | Allows ptr_type to be configurable. BUG= Review URL: https://codereview.chromium.org/49913003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@232858 0039d316-1c4b-4281-b951-d872f2087c98
* Android WebView: add empty jarjar ruleset.torne@chromium.org2013-05-301-0/+7
| | | | | | | | | | | | | | | | | We don't have any jarjar rules yet, but add the empty file now in order that the downstream build can enable jarjar. This way, when rules are added later it will just work, instead of breaking the downstream build temporarily. Also, make sure that when a jarjar rule file is being used, it's considered as an input to the JNI generator step, to make sure the JNI header files get regenerated when the rules change. BUG= Review URL: https://chromiumcodereview.appspot.com/15888011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@203141 0039d316-1c4b-4281-b951-d872f2087c98
* Android: allow JNI generator to be used with jarjar.torne@chromium.org2013-05-291-0/+3
| | | | | | | | | | | | | | When using jarjar to rename Java packages to avoid name conflicts, the generated JNI code no longer works as it refers to the old name. Support using the jarjar remapping list during JNI generation to generate code that refers to the post-remapping names, since the JNI headers are not intended to be read by humans anyway. BUG= Review URL: https://chromiumcodereview.appspot.com/15715006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@202856 0039d316-1c4b-4281-b951-d872f2087c98
* [Android] Change jni_gen_dir to jni_gen_package for jni_generator.yfriedman@chromium.org2013-03-071-3/+3
| | | | | | | | | | | | | With the old name it was getting relativized which is undesirable. See bug for more details. BUG=159133 TBR=ben (nobody really cares about this outside of build/ which cjhopman approved) Review URL: https://chromiumcodereview.appspot.com/12558005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@186803 0039d316-1c4b-4281-b951-d872f2087c98
* Add gyp flag to specify whether we should optimize JNI generation.tedchoc@chromium.org2013-02-221-0/+2
| | | | | | | | | | | | | | | | | | Do not regenerate JNI files (and subsequently the .so file) if they have not changed. This will happen if you edit a java file that has a native counterpart, but the native signatures were not touched. We do not enable this all the time as some build systems require that when you modify an input, the output should also be modified. This also will result in more command line output, so we'll keep it behind a developer flag for now. BUG= Review URL: https://chromiumcodereview.appspot.com/12314025 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@183936 0039d316-1c4b-4281-b951-d872f2087c98
* Android: uses "import" section and inner classes for obtaining qualified JNI ↵bulach@chromium.org2012-11-071-4/+0
| | | | | | | | | | | | | | | | parameters. Rather than explicitly listing all the parameters (see crbug.com/158722), infer almost all of them from the import section and inner classes. Assumes other classes are in the same package as a fallback. BUG=159397 TEST=base/android/jni_generator/jni_generator_tests.py Review URL: https://chromiumcodereview.appspot.com/11363079 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@166482 0039d316-1c4b-4281-b951-d872f2087c98
* Android: passes a list of qualified JNI parameters as a param to the generator.bulach@chromium.org2012-10-311-0/+4
| | | | | | | | | | | | | | | Instead of hardcoding the list of qualified JNI parameters, pass it as a parameter so that different modules can inject their classes. This is the first step in such decoupling; follow up will start splitting the class_list.jni list closer to their modules. BUG=158722 TEST=jni_generator_tests Review URL: https://chromiumcodereview.appspot.com/11339013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@165250 0039d316-1c4b-4281-b951-d872f2087c98
* Uses gyp "rules" rather than "actions" templates for the JNI generator.bulach@chromium.org2012-07-191-40/+42
| | | | | | | | | | | | | | | | | This allow finer grain control over what is rebuilt. Also, since we have approval over the generated header file name, it greatly simplifies both the generator and also all the gyp files as they no longer need to list the header file and keep in sync with the java file, so the process now is as simple as adding a single java file to the sources. BUG=137069 TEST=build on android Review URL: https://chromiumcodereview.appspot.com/10798010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@147515 0039d316-1c4b-4281-b951-d872f2087c98
* Add templates for building java and running the jni_generator.yfriedman@chromium.org2012-04-171-0/+56
As requested in http://codereview.chromium.org/10073024/, I've created templates for these two actions. I've also applied them to base. Review URL: http://codereview.chromium.org/10081035 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@132537 0039d316-1c4b-4281-b951-d872f2087c98