User:Georgy: Difference between revisions
Created page with "Category:GSOC2016" |
add to contributor category |
||
| (5 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
'''Georgy Berdyshev''' | |||
The goal of this project is to implement MSYS2 based build process for ASCEND and improve packaging for Mac. | |||
The main task is to improve the ASCEND build processes by creating a new MSYS2 based implementation by modifying and updating the current SCons build files. | |||
The introduction of MSYS2 for the build processes will bring many benefits to ASCEND, such as the possibility to build more easily 64 bit binaries on Windows and to be able to rely on a current gcc compiler suite from MinGWw64. | |||
In contrast, the current build process has to rely on TDMGCC (instead of MinGW used with MSYS) to be able to compile 32bit and 64bit binaries. | |||
MSYS2 would bring many features to the project, such as the possibility to install dependencies in an easy manner and speed up the build process. But most importantly it has much better native Windows API support. Therefore providing a very feature rich and free base for the new build system of ASCEND. | |||
Project details: https://summerofcode.withgoogle.com/dashboard/project/5090588751822848/details/ | |||
== Using subversion == | |||
1) Subversion username and branch: {{srcbranchdir|georgy|}} | |||
2) Changes: | |||
http://code.ascend4.org/ascend/branches/georgy/?sortby=log&view=log | |||
The changes for this project are committed to github and synced regularly with the {{srcbranchdir|georgy|}} subversion branch. | |||
== Using git (github.com) == | |||
1) Master branch contains merge code from the below branches, that is synced to the subversion branch. | |||
[https://github.com/georgyberdyshev/ascend/tree/master master] | |||
[https://github.com/georgyberdyshev/ascend/commits/master changes] | |||
2) MSYS2 branch contains msys2, swig and changes for mingw64 and native Python support. | |||
[https://github.com/georgyberdyshev/ascend/tree/msys2/python msys2/python] | |||
[https://github.com/georgyberdyshev/ascend/commits/msys2/python changes] | |||
3) NSIS3 branch contains support for a NSIS3 Windows based installer and further improvements. | |||
[https://github.com/georgyberdyshev/ascend/tree/nsis3 nsis3] | |||
[https://github.com/georgyberdyshev/ascend/commits/nsis3 changes] | |||
4) Sundials_2.6 branch contains support for using the newer sundials 2.6 version with ascend. | |||
[https://github.com/georgyberdyshev/ascend/tree/sundials_2.6 sundials_2.6] | |||
[https://github.com/georgyberdyshev/ascend/commits/sundials_2.6 changes] | |||
==Obtaining the source code== | |||
1) Using subversion | |||
svn co http://code.ascend4.org/ascend/branches/georgy | |||
2) Using git | |||
git clone https://github.com/georgyberdyshev/ascend.git | |||
== Using MSYS2 == | |||
MSYS2 is a new generation of MSYS that works with the <tt>[https://wiki.archlinux.org/index.php/pacman pacman]</tt> package manager. | |||
After obtaining the source code, you can install the required pacman package by running the following commands: | |||
<source lang="sh"> | |||
pacman -Syu | |||
pacman -S vim | |||
pacman -S mingw-w64-x86_64-gtk2 mingw-w64-x86_64-gcc \ | |||
mingw-w64-x86_64-gcc-fortran mingw-w64-x86_64-python2-numpy \ | |||
mingw-w64-x86_64-python2-pygtk subversion swig \ | |||
flex bison python2 scons pkgconfig \ | |||
mingw-w64-i686-python2 | |||
svn co svn://ascend4.org/code/trunk ascend | |||
cd ascend | |||
scons | |||
</source> | |||
It is important to note, that the current version of scons that is being used for the build relies on the msys Python package, that is broken. | |||
Therefore it is required to bootstrap an alternative Python, even though scons runs via msys. | |||
You may either provide a mingw64 install Python or the native win32 Python installation, by specifying the PYTHON variable to scons. | |||
<source lang="sh"> | |||
scons PYTHON=/c/Python27/python.exe | |||
or | |||
scons PYTHON=/mingw64/bin/python | |||
</source> | |||
== Project log == | |||
*[https://github.com/georgyberdyshev/ascend/commit/6962ef6c2ca36ff6cfff85e98c2daeac82619b82 Added SWIG 3 support. Fixes Unknown SWIG preprocessor directive error.] | |||
*[https://github.com/georgyberdyshev/ascend/commit/a9e79e6bb410ea60eb1e3e6b7ad19923216c77bc Fix name of sundials-config command.] | |||
*[https://github.com/georgyberdyshev/ascend/commit/6a0af5af9ada74fca34c24e2ded1859738484994 Detect SUNDIALS 2.6 on MinGW.] | |||
*[https://github.com/georgyberdyshev/ascend/commit/6aa1673da8f26716b5a9080660e24331c38a5759 Detect SUNDIALS 2.6 on MinGW.] | |||
*[https://github.com/georgyberdyshev/ascend/commit/026bd7814daaa17cc7484f012b945ed17449df16 Updated code to use NSISdl plugin.] | |||
*[https://github.com/georgyberdyshev/ascend/commit/8e47a0eb9543933e7d08cd1655c08964b246b792 Added Unicode multi language installer and uninstaller with several languages.] | |||
*[https://github.com/georgyberdyshev/ascend/commit/12eadeb43b8f481f4effe7b6e2ae0baf3556f36e Create NSIS Modern UI 2.0 based installers.] | |||
*[https://github.com/georgyberdyshev/ascend/commit/58c01c61ea9efbb2668bd8e792ab8a299e6e8f14 Display ASCEND website as branding text.] | |||
*[https://github.com/georgyberdyshev/ascend/commit/85ceb7985755a333c0b31c80ad5aaf9053841427 Added initial code to specify and detect the Python executable.] | |||
*[https://github.com/georgyberdyshev/ascend/commit/a8289e3bbf16e27565fe618b0f7d36e7823204e0 Merge remote-tracking branch 'origin/nsis3' into msys2/python] | |||
*[https://github.com/georgyberdyshev/ascend/commit/a0c72c8920e773516f0eea0ee1ddb3c97f35e3e4 Use /usr/bin/env to detect Python.] | |||
*[https://github.com/georgyberdyshev/ascend/commit/c0614cb0273b79beb055fd7f822631c27738dd45 Use /usr/bin/env to detect Python.] | |||
*[https://github.com/georgyberdyshev/ascend/commit/22ccdad3a5b3eca8ec51cb14fd7830f5181f8f28 Detect native win32 Python.] | |||
*[https://github.com/georgyberdyshev/ascend/commit/74d3505f27f68cb566bdc1c732c44f3a75267bf6 Use os.path on Windows.] | |||
*[https://github.com/georgyberdyshev/ascend/commit/2b724c6855d3e1963b5c109dff642abccea8585d Added functionality to detect Windows Python environment.] | |||
*[https://github.com/georgyberdyshev/ascend/commit/17e9afa0b69f34f395c44b7a782858fa59eefeca Request Python environment when using msys2.] | |||
*[https://github.com/georgyberdyshev/ascend/commit/4835282f161f3b53a6d4ab757aa6f366e255d11d Added functionality to detect Windows Python environment independently.] | |||
*[https://github.com/georgyberdyshev/ascend/commit/4e7dd34bad7f1e00175aa916c39049d85531273a Detect bootstrapped Python environment.] | |||
*[https://github.com/georgyberdyshev/ascend/commit/b8ec72f999f7af3f317dcfd1fb424cf29a82720b Added support to bootstrap mingw64 Python from msys2.] | |||
*[https://github.com/georgyberdyshev/ascend/commit/4adaac1c3edcf54ab93634d1b7df6ffec37e9df0 Added functionality to detect additional lib paths for native Python on win32 and win64.] | |||
*[https://github.com/georgyberdyshev/ascend/commit/3b9ed5ca884b0a54e43810821ace02a1cde75191 Show scons generated output files.] | |||
*[https://github.com/georgyberdyshev/ascend/commit/1989b3ba3baa607ab32c111732a95aed1b5eda3f Fix SWIG compilation and Python lib paths.] | |||
*[https://github.com/georgyberdyshev/ascend/commit/38642239f4b0cd846448a55e8356de67c321ab43 Fix compilation and Python lib paths.] | |||
*[https://github.com/georgyberdyshev/ascend/commit/9e2bcb56560e34038036fb249a84d0881b425262 Updated NSIS detection.] | |||
*[https://github.com/georgyberdyshev/ascend/commit/c2f265108f122fb44b82ec6f30ebeceb49157ca6 Updated Tcl detection.] | |||
*[https://github.com/georgyberdyshev/ascend/commit/f1778f9a1891ea601fa17905fc3d4b9ae5fa67cb Merge branch 'sundials_2.6' into msys2/python] | |||
[[Category:GSOC2016]] | [[Category:GSOC2016]] | ||
[[Category:ASCEND Contributors]] | |||
Latest revision as of 11:01, 31 January 2018
Georgy Berdyshev
The goal of this project is to implement MSYS2 based build process for ASCEND and improve packaging for Mac.
The main task is to improve the ASCEND build processes by creating a new MSYS2 based implementation by modifying and updating the current SCons build files.
The introduction of MSYS2 for the build processes will bring many benefits to ASCEND, such as the possibility to build more easily 64 bit binaries on Windows and to be able to rely on a current gcc compiler suite from MinGWw64.
In contrast, the current build process has to rely on TDMGCC (instead of MinGW used with MSYS) to be able to compile 32bit and 64bit binaries. MSYS2 would bring many features to the project, such as the possibility to install dependencies in an easy manner and speed up the build process. But most importantly it has much better native Windows API support. Therefore providing a very feature rich and free base for the new build system of ASCEND.
Project details: https://summerofcode.withgoogle.com/dashboard/project/5090588751822848/details/
Using subversion
1) Subversion username and branch: georgy:
2) Changes:
http://code.ascend4.org/ascend/branches/georgy/?sortby=log&view=log
The changes for this project are committed to github and synced regularly with the georgy: subversion branch.
Using git (github.com)
1) Master branch contains merge code from the below branches, that is synced to the subversion branch.
2) MSYS2 branch contains msys2, swig and changes for mingw64 and native Python support.
3) NSIS3 branch contains support for a NSIS3 Windows based installer and further improvements.
4) Sundials_2.6 branch contains support for using the newer sundials 2.6 version with ascend.
Obtaining the source code
1) Using subversion
svn co http://code.ascend4.org/ascend/branches/georgy
2) Using git
git clone https://github.com/georgyberdyshev/ascend.git
Using MSYS2
MSYS2 is a new generation of MSYS that works with the pacman package manager.
After obtaining the source code, you can install the required pacman package by running the following commands:
Invalid language.
You need to specify a language like this: <source lang="html">...</source>
Supported languages for syntax highlighting:
a4c, abap, abc, abnf, actionscript, ada, agda, alan, algol, ampl, amtrix, applescript, arc, arm, as400cl, ascend, asciidoc, asp, aspect, assembler, ats, autohotkey, autoit, avenue, awk, ballerina, bat, bbcode, bcpl, bibtex, biferno, bison, blitzbasic, bms, bnf, boo, c, carbon, ceylon, charmm, chill, chpl, clean, clearbasic, clipper, clojure, clp, cmake, cobol, coffeescript, coldfusion, conf, cpp2, critic, crk, crystal, cs_block_regex, csharp, css, d, dart, delphi, diff, dockerfile, dts, dylan, ebnf, ebnf2, eiffel, elixir, elm, email, erb, erlang, euphoria, exapunks, excel, express, factor, fame, fasm, felix, fish, fortran77, fortran90, frink, fsharp, fstab, fx, gambas, gdb, gdscript, go, graphviz, haml, hare, haskell, haxe, hcl, html, httpd, hugo, icon, idl, idlang, inc_luatex, informix, ini, innosetup, interlis, io, jam, jasmin, java, javascript, js_regex, json, jsp, jsx, julia, kotlin, ldif, less, lhs, lilypond, limbo, lindenscript, lisp, logtalk, lotos, lotus, lua, luban, makefile, maple, markdown, matlab, maya, mercury, meson, miranda, mod2, mod3, modelica, moon, ms, msl, mssql, mxml, n3, nasal, nbc, nemerle, netrexx, nginx, nice, nim, nix, nsis, nxc, oberon, objc, ocaml, octave, oorexx, org, os, oz, paradox, pas, pdf, perl, php, pike, pl1, plperl, plpython, pltcl, po, polygen, pony, pov, powershell, pro, progress, ps, psl, pure, purebasic, purescript, pyrex, python, q, qmake, qml, qu, r, rebol, rego, rexx, rnc, rpg, rpl, rst, ruby, rust, s, sam, sas, scad, scala, scilab, scss, shellscript, slim, small, smalltalk, sml, snmp, snobol, solidity, spec, spn, sql, squirrel, styl, svg, swift, sybase, tcl, tcsh, terraform, tex, toml, tsql, tsx, ttcn3, txt, typescript, upc, vala, vb, verilog, vhd, vimscript, vue, wat, whiley, wren, xml, xpp, yaiff, yaml, yaml_ansible, yang, zig, znn
It is important to note, that the current version of scons that is being used for the build relies on the msys Python package, that is broken. Therefore it is required to bootstrap an alternative Python, even though scons runs via msys. You may either provide a mingw64 install Python or the native win32 Python installation, by specifying the PYTHON variable to scons.
Invalid language.
You need to specify a language like this: <source lang="html">...</source>
Supported languages for syntax highlighting:
a4c, abap, abc, abnf, actionscript, ada, agda, alan, algol, ampl, amtrix, applescript, arc, arm, as400cl, ascend, asciidoc, asp, aspect, assembler, ats, autohotkey, autoit, avenue, awk, ballerina, bat, bbcode, bcpl, bibtex, biferno, bison, blitzbasic, bms, bnf, boo, c, carbon, ceylon, charmm, chill, chpl, clean, clearbasic, clipper, clojure, clp, cmake, cobol, coffeescript, coldfusion, conf, cpp2, critic, crk, crystal, cs_block_regex, csharp, css, d, dart, delphi, diff, dockerfile, dts, dylan, ebnf, ebnf2, eiffel, elixir, elm, email, erb, erlang, euphoria, exapunks, excel, express, factor, fame, fasm, felix, fish, fortran77, fortran90, frink, fsharp, fstab, fx, gambas, gdb, gdscript, go, graphviz, haml, hare, haskell, haxe, hcl, html, httpd, hugo, icon, idl, idlang, inc_luatex, informix, ini, innosetup, interlis, io, jam, jasmin, java, javascript, js_regex, json, jsp, jsx, julia, kotlin, ldif, less, lhs, lilypond, limbo, lindenscript, lisp, logtalk, lotos, lotus, lua, luban, makefile, maple, markdown, matlab, maya, mercury, meson, miranda, mod2, mod3, modelica, moon, ms, msl, mssql, mxml, n3, nasal, nbc, nemerle, netrexx, nginx, nice, nim, nix, nsis, nxc, oberon, objc, ocaml, octave, oorexx, org, os, oz, paradox, pas, pdf, perl, php, pike, pl1, plperl, plpython, pltcl, po, polygen, pony, pov, powershell, pro, progress, ps, psl, pure, purebasic, purescript, pyrex, python, q, qmake, qml, qu, r, rebol, rego, rexx, rnc, rpg, rpl, rst, ruby, rust, s, sam, sas, scad, scala, scilab, scss, shellscript, slim, small, smalltalk, sml, snmp, snobol, solidity, spec, spn, sql, squirrel, styl, svg, swift, sybase, tcl, tcsh, terraform, tex, toml, tsql, tsx, ttcn3, txt, typescript, upc, vala, vb, verilog, vhd, vimscript, vue, wat, whiley, wren, xml, xpp, yaiff, yaml, yaml_ansible, yang, zig, znn
Project log
- Added SWIG 3 support. Fixes Unknown SWIG preprocessor directive error.
- Fix name of sundials-config command.
- Detect SUNDIALS 2.6 on MinGW.
- Detect SUNDIALS 2.6 on MinGW.
- Updated code to use NSISdl plugin.
- Added Unicode multi language installer and uninstaller with several languages.
- Create NSIS Modern UI 2.0 based installers.
- Display ASCEND website as branding text.
- Added initial code to specify and detect the Python executable.
- Merge remote-tracking branch 'origin/nsis3' into msys2/python
- Use /usr/bin/env to detect Python.
- Use /usr/bin/env to detect Python.
- Detect native win32 Python.
- Use os.path on Windows.
- Added functionality to detect Windows Python environment.
- Request Python environment when using msys2.
- Added functionality to detect Windows Python environment independently.
- Detect bootstrapped Python environment.
- Added support to bootstrap mingw64 Python from msys2.
- Added functionality to detect additional lib paths for native Python on win32 and win64.
- Show scons generated output files.
- Fix SWIG compilation and Python lib paths.
- Fix compilation and Python lib paths.
- Updated NSIS detection.
- Updated Tcl detection.
- Merge branch 'sundials_2.6' into msys2/python