summaryrefslogtreecommitdiff
path: root/src/rebar_port_compiler.erl
Commit message (Collapse)AuthorAgeFilesLines
* Quote include/lib pathsDan Gudmundsson2014-04-091-4/+4
| | | | | In OTP-17.0 paths on windows are not shortpaths anymore so they may contain spaces and parenthesis
* Avoid passing more than one instance of ERL_LIBS to child processesJuan Jose Comellas2013-06-131-1/+11
| | | | | | This commit fixes issue #98 by removing the ERL_LIBS and REBAR_DEPS_DIR from the list of environment variables exported by the rebar_port_compiler plugin.
* Add rebar-deps env to port compiler SharedEnvJeremie Lasalle Ratelle2013-05-061-1/+2
| | | | | REBAR_DEPS_DIR is often needed when a nif needs to be linked with a raw dependency.
* Implement 'rebar help CMD1 CMD2' and extend common 'rebar help' msgTuncer Ayaz2012-12-311-2/+26
| | | | | * allow plugins to print help message for implemented commands * append core rebar.config options to common 'rebar help' message
* Support environment vars with unicode charactersJosé Valim2012-11-221-3/+3
| | | | | | | The results returned by os:getenv() may contain unicode characters. That said, we need to explicitly allow unicode when splitting the environment information, otherwise badarg will be raised causing all rebar commands to fail until the environment variable is removed.
* Be sure to filter empty sources (h/t to Tuncer and Joe Norton)Dave Smith2012-11-121-10/+11
|
* Restore support for so_name, port_envs and port_sourcesDave Smith2012-11-111-10/+41
|
* Update port_env for Mountain Lion (Noticed-by: Tony Rogvall)Tuncer Ayaz2012-09-011-9/+4
|
* Only print absolute filename if not in base_dirTuncer Ayaz2012-08-051-10/+15
|
* Fix R13B03 build (Reported-by: Sergey Nartimov)Tuncer Ayaz2012-07-281-1/+1
|
* Fix -D handlingJoseph Wayne Norton2012-07-281-6/+6
|
* Fix indentingTuncer Ayaz2012-07-231-1/+1
|
* Finalize port_compiler deprecationsTuncer Ayaz2012-07-231-137/+21
|
* Do not use application:set_envTuncer Ayaz2012-07-231-3/+4
|
* Remove shared stateTuncer Ayaz2012-07-131-17/+20
|
* Merge pull request #157 from dch/dch-windows-msvc-supportDave Smith2012-07-111-1/+25
|\ | | | | add native Windows compiler support
| * Windows: add native SDK supportDave Cottlehuber2012-06-081-1/+25
| | | | | | | | - compatible with rebar 2.0.0
* | Fix #247 (Reported-by: Uvarov Michael)Tuncer Ayaz2012-06-171-2/+1
| |
* | Manually format port_compiler errors with absolute pathTuncer Ayaz2012-06-111-3/+17
|/
* Fix file extension bug (Reported-by: Tony Rogvall)Tuncer Ayaz2012-05-141-3/+3
|
* Do not use inherited port optionsTuncer Ayaz2012-04-231-16/+17
|
* Add support for target-specific port optionsTuncer Ayaz2012-04-161-176/+200
| | | | {port_specs, [{".*", "priv/foo.so", ["c_src/foo.c"], [{env, []}]}]}.
* Deprecate port_envs in favor of port_envTuncer Ayaz2012-03-091-50/+52
|
* Remove debug logTuncer Ayaz2012-02-121-1/+0
|
* Fix regression in port_compiler needs_link checkTuncer Ayaz2012-02-101-6/+12
|
* Use lists:flatmap/2Tuncer Ayaz2012-02-071-6/+6
|
* Rework port compiler supportTuncer Ayaz2012-02-031-75/+200
| | | | | * consolidate options * add support for building executables
* Fix -D and -v handling with new getopt.erlTuncer Ayaz2012-01-291-8/+3
|
* Remove port_first_files supportTuncer Ayaz2012-01-091-22/+3
|
* Fail if erl_interface not foundJesse Gumm2011-12-081-2/+10
| | | | | | Previously if erl_interface could not be found {error, not_found} was incorrectly used as a path. With this change we fail early with a descriptive error message.
* Add support for first_files to port compilerTim Watson2011-11-301-3/+22
| | | | | This patch adds support for first_files to the port_compiler, via the new `port_first_files` rebar config element.
* Remove obsolete comments (thanks Tim Watson)Tuncer Ayaz2011-11-041-8/+0
|
* Fix comments and formattingTuncer Ayaz2011-10-261-7/+11
|
* Overhaul environment expansion for better performanceDave Smith2011-10-261-28/+41
| | | | | | | | | | The introduction of setup_env as a global concept caused the rebar_port_compiler implementation to start getting called a LOT. The expansion of environment variables that happens in the port compiler was O(n^n), which means you could see upwards of 80k invocations of lists:foldl on a single app "./rebar clean". This commit reworks the expansion to be O(n^2), and reduces the running time for the same operation by 60%+. On a large project like Riak, the end result is that a build went from 200 seconds to 73.
* Add -D support to rebar_port_compilerTuncer Ayaz2011-10-231-1/+11
|
* Limit line lengthTuncer Ayaz2011-08-201-2/+4
|
* Support command invocation on Windows without MSYSJan Klötzke2011-08-201-19/+7
| | | | | | If MSYS (with bash) is not installed on Windows then do the shell variable substitution by ourselves. Otherwise just call bash to do the job.
* Extend port compiler default env for Darwin 11 32-bitTuncer Ayaz2011-08-011-1/+6
|
* Apply Tidier suggestionsTuncer Ayaz2011-06-021-1/+1
|
* Make port compilation template configurableJuhani Rankimies2011-06-021-15/+40
| | | | | | - Port compiler no longer requires bash on windows. - It's possible to use compilers whose command lines don't fit into the default template
* Cleanup deprecations now that R14B03 is releasedTuncer Ayaz2011-05-311-41/+1
|
* Extract code to get wordsize into helper functionTuncer Ayaz2011-05-311-8/+1
|
* Use external wordsize to get emulator build archSteve Vinoski2011-05-311-1/+8
| | | | | | | | | | | | | | | Calling erlang:system_info(wordsize) yields the internal word size of the Erlang emulator. But due to the halfword emulator, need to pass {wordsize, external} instead to get the word size, or pointer size, as seen by external code such as NIFs. The halfword emulator has 4 byte internal words but 8 byte external words due to 64-bit compilation, which means NIFs for the halfword emulator also have to be compiled 64-bit. But just passing wordsize is equivalent to passing {wordsize, internal}, which does not indicate the pointer size for the halfword emulator. Older versions of Erlang do not support {wordsize, external}, though, so continue to pass just wordsize for those versions.
* Change arch-specific port_sources to take a listAndrew Tunnell-Jones2011-05-281-6/+6
| | | | | | | | | | Change the second parameter of a regex tagged port_source from being a filename or wildcard to being a list of filenames or wildcards. Previously: {"R14", "c_src/*.c"} Now: {"R14", ["c_src/*.c"]} Motivation for change is to avoid repeating regexes.
* Fix leftover whitespace errorsTuncer Ayaz2011-05-231-9/+9
|
* Fix indentation errorsTuncer Ayaz2011-05-231-37/+36
|
* Fix indentation errorsTuncer Ayaz2011-05-211-36/+37
|
* Change logic to support more port env use casesAnthony Molinaro2011-05-131-11/+41
| | | | | | | | | | | | | | | | | | The logic changes from strict overrides to a hybrid for merging os_env and defaults, whereby defaults are chosen if they are not set in the os_env or if the defaults contains substitutions (at which point os environment is substituted). This still means that rebar.config works as it did before, where it overrides or substitutes based on the use of $VAR, but that default and os environment merging works such that the common cases of providing CC or LDFLAGS in the users environment or command line work as you might expect. In that CC is overriden by the os environment unless rebar.config overrides it, and LDFLAGS from the user environment is appended or prepended based on defaults and rebar.config. Addresses problems with https://github.com/basho/rebar/pull/71 Also keeps the fix for bug 255.
* Fix code readability in port_compilerTuncer Ayaz2011-05-121-15/+15
|
* Add missing newline in port_compiler debug msgTuncer Ayaz2011-04-281-1/+1
|