User:Georgy: Difference between revisions

From ASCEND
Jump to navigation Jump to search
Created page with "Category:GSOC2016"
 
Mike (talk | contribs)
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 MinGW­w64.
In contrast, the current build process has to rely on TDM­GCC (instead of MinGW used with MSYS) to be able to compile 32­bit and 64­bit 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 MinGW­w64.

In contrast, the current build process has to rely on TDM­GCC (instead of MinGW used with MSYS) to be able to compile 32­bit and 64­bit 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.

master changes

2) MSYS2 branch contains msys2, swig and changes for mingw64 and native Python support.

msys2/python changes

3) NSIS3 branch contains support for a NSIS3 Windows based installer and further improvements.

nsis3 changes

4) Sundials_2.6 branch contains support for using the newer sundials 2.6 version with ascend.

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 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