version: "{build}" clone_depth: 5 platform: - x64 - x86 configuration: - Release matrix: fast_finish: true install: - cmd: python -m pip install PyYAML build_script: # C:\projects\duktape # https://en.wikipedia.org/wiki/Microsoft_Visual_Studio#History #- cmd: set #- cmd: dir "C:\Program Files\" #- cmd: dir "C:\Program Files (x86)\" # Make dist, ensure it works on Windows too. - cmd: cd C:\projects\duktape - cmd: python util\dist.py # Prep a few variants of headers and sources. - cmd: python tools\configure.py --output-directory prep-nondll --source-directory src-input --config-metadata config - cmd: dir prep-nondll - cmd: python tools\configure.py --output-directory prep-dll --source-directory src-input --config-metadata config --dll - cmd: dir prep-dll - cmd: python tools\configure.py --output-directory prep-cpp --source-directory src-input --config-metadata config -DDUK_USE_CPP_EXCEPTIONS - cmd: dir prep-cpp # --- Visual Studio 2015 --- # PATH doesn't include any 'cl' by default, not sure how to do this correctly. # https://msdn.microsoft.com/en-us/library/f2ccy3wt.aspx # Multi-line commands are run line-by-line (?). - cmd: set VCPATH="\Program Files (x86)\Microsoft Visual Studio 14.0\VC" - cmd: set VCPLATFORM=NONE - cmd: set VCNAME=vs2015 - cmd: if "%PLATFORM%"=="x86" ( set VCPLATFORM=x86 ) - cmd: if "%PLATFORM%"=="x64" ( set VCPLATFORM=x86_amd64 ) - cmd: echo PLATFORM=%PLATFORM%, VCPLATFORM=%VCPLATFORM% - cmd: "%VCPATH%\\vcvarsall %VCPLATFORM%" - cmd: cl # Normal build. - cmd: cl /W3 /O2 /DDUK_CMDLINE_PRINTALERT_SUPPORT /DDUK_CMDLINE_PRINTALERT_SUPPORT /Iprep-nondll /Iexamples\cmdline /Iextras\print-alert prep-nondll\duktape.c examples\cmdline\duk_cmdline.c extras\print-alert\duk_print_alert.c /Feduk-%VCNAME%-%PLATFORM%.exe # DLL build. - cmd: cl /W3 /O2 /Iprep-dll /LD /Feduktape-%VCNAME%-%PLATFORM% prep-dll\duktape.c - cmd: cl /W3 /O2 /DDUK_CMDLINE_PRINTALERT_SUPPORT /Iprep-dll /Iexamples\cmdline /Iextras\print-alert examples\cmdline\duk_cmdline.c extras\print-alert\duk_print_alert.c /Feduk-dll-%VCNAME%-%PLATFORM%.exe duktape-%VCNAME%-%PLATFORM%.lib # Build as C++, catches some static variable issues specific to C++. # Also test C++ exceptions on Windows. # /TP forces files to be interpreted as C++ despite their extension. # /EHsc enables exception unwind support. - cmd: cl /TP /EHsc /W3 /O2 /DDUK_CMDLINE_PRINTALERT_SUPPORT /Iprep-cpp /Iexamples\cmdline /Iextras\print-alert prep-cpp\duktape.c examples\cmdline\duk_cmdline.c extras\print-alert\duk_print_alert.c /Feduk-cxx-%VCNAME%-%PLATFORM%.exe # --- Visual Studio 2013 --- - cmd: set VCPATH="\Program Files (x86)\Microsoft Visual Studio 12.0\VC" - cmd: set VCPLATFORM=NONE - cmd: set VCNAME=vs2013 - cmd: if "%PLATFORM%"=="x86" ( set VCPLATFORM=x86 ) - cmd: if "%PLATFORM%"=="x64" ( set VCPLATFORM=x86_amd64 ) - cmd: echo PLATFORM=%PLATFORM%, VCPLATFORM=%VCPLATFORM% - cmd: "%VCPATH%\\vcvarsall %VCPLATFORM%" - cmd: cl - cmd: cl /W3 /O2 /DDUK_CMDLINE_PRINTALERT_SUPPORT /Iprep-nondll /Iexamples\cmdline /Iextras\print-alert prep-nondll\duktape.c examples\cmdline\duk_cmdline.c extras\print-alert\duk_print_alert.c /Feduk-%VCNAME%-%PLATFORM%.exe - cmd: cl /W3 /O2 /Iprep-dll /LD /Feduktape-%VCNAME%-%PLATFORM% prep-dll\duktape.c - cmd: cl /W3 /O2 /DDUK_CMDLINE_PRINTALERT_SUPPORT /Iprep-dll /Iexamples\cmdline /Iextras\print-alert examples\cmdline\duk_cmdline.c extras\print-alert\duk_print_alert.c /Feduk-dll-%VCNAME%-%PLATFORM%.exe duktape-%VCNAME%-%PLATFORM%.lib - cmd: cl /TP /EHsc /W3 /O2 /DDUK_CMDLINE_PRINTALERT_SUPPORT /Iprep-cpp /Iexamples\cmdline /Iextras\print-alert prep-cpp\duktape.c examples\cmdline\duk_cmdline.c extras\print-alert\duk_print_alert.c /Feduk-cxx-%VCNAME%-%PLATFORM%.exe # --- Visual Studio 2012 --- # Use VS2012 (11.0) to catch https://github.com/svaarala/duktape/pull/595. - cmd: set VCPATH="\Program Files (x86)\Microsoft Visual Studio 11.0\VC" - cmd: set VCPLATFORM=NONE - cmd: set VCNAME=vs2012 - cmd: if "%PLATFORM%"=="x86" ( set VCPLATFORM=x86 ) - cmd: if "%PLATFORM%"=="x64" ( set VCPLATFORM=x86_amd64 ) - cmd: echo PLATFORM=%PLATFORM%, VCPLATFORM=%VCPLATFORM% - cmd: "%VCPATH%\\vcvarsall %VCPLATFORM%" - cmd: cl - cmd: cl /W3 /O2 /DDUK_CMDLINE_PRINTALERT_SUPPORT /Iprep-nondll /Iexamples\cmdline /Iextras\print-alert prep-nondll\duktape.c examples\cmdline\duk_cmdline.c extras\print-alert\duk_print_alert.c /Feduk-%VCNAME%-%PLATFORM%.exe - cmd: cl /W3 /O2 /Iprep-dll /LD /Feduktape-%VCNAME%-%PLATFORM% prep-dll\duktape.c - cmd: cl /W3 /O2 /DDUK_CMDLINE_PRINTALERT_SUPPORT /Iprep-dll /Iexamples\cmdline /Iextras\print-alert examples\cmdline\duk_cmdline.c extras\print-alert\duk_print_alert.c /Feduk-dll-%VCNAME%-%PLATFORM%.exe duktape-%VCNAME%-%PLATFORM%.lib - cmd: cl /TP /EHsc /W3 /O2 /DDUK_CMDLINE_PRINTALERT_SUPPORT /Iprep-cpp /Iexamples\cmdline /Iextras\print-alert prep-cpp\duktape.c examples\cmdline\duk_cmdline.c extras\print-alert\duk_print_alert.c /Feduk-cxx-%VCNAME%-%PLATFORM%.exe # --- Visual Studio 2010 --- - cmd: set VCPATH="\Program Files (x86)\Microsoft Visual Studio 10.0\VC" - cmd: set VCPLATFORM=NONE - cmd: set VCNAME=vs2010 - cmd: if "%PLATFORM%"=="x86" ( set VCPLATFORM=x86 ) - cmd: if "%PLATFORM%"=="x64" ( set VCPLATFORM=x86_amd64 ) - cmd: echo PLATFORM=%PLATFORM%, VCPLATFORM=%VCPLATFORM% - cmd: "%VCPATH%\\vcvarsall %VCPLATFORM%" - cmd: cl - cmd: cl /W3 /O2 /DDUK_CMDLINE_PRINTALERT_SUPPORT /Iprep-nondll /Iexamples\cmdline /Iextras\print-alert prep-nondll\duktape.c examples\cmdline\duk_cmdline.c extras\print-alert\duk_print_alert.c /Feduk-%VCNAME%-%PLATFORM%.exe - cmd: cl /W3 /O2 /Iprep-dll /LD /Feduktape-%VCNAME%-%PLATFORM% prep-dll\duktape.c - cmd: cl /W3 /O2 /DDUK_CMDLINE_PRINTALERT_SUPPORT /Iprep-dll /Iexamples\cmdline /Iextras\print-alert examples\cmdline\duk_cmdline.c extras\print-alert\duk_print_alert.c /Feduk-dll-%VCNAME%-%PLATFORM%.exe duktape-%VCNAME%-%PLATFORM%.lib - cmd: cl /TP /EHsc /W3 /O2 /DDUK_CMDLINE_PRINTALERT_SUPPORT /Iprep-cpp /Iexamples\cmdline /Iextras\print-alert prep-cpp\duktape.c examples\cmdline\duk_cmdline.c extras\print-alert\duk_print_alert.c /Feduk-cxx-%VCNAME%-%PLATFORM%.exe # --- Visual Studio 2008 --- - cmd: set VCPATH="\Program Files (x86)\Microsoft Visual Studio 9.0\VC" - cmd: set VCPLATFORM=NONE - cmd: set VCNAME=vs2008 - cmd: if "%PLATFORM%"=="x86" ( set VCPLATFORM=x86 ) - cmd: if "%PLATFORM%"=="x64" ( set VCPLATFORM=x86_amd64 ) - cmd: echo PLATFORM=%PLATFORM%, VCPLATFORM=%VCPLATFORM% - cmd: "%VCPATH%\\vcvarsall %VCPLATFORM%" - cmd: cl - cmd: cl /W3 /O2 /DDUK_CMDLINE_PRINTALERT_SUPPORT /Iprep-nondll /Iexamples\cmdline /Iextras\print-alert prep-nondll\duktape.c examples\cmdline\duk_cmdline.c extras\print-alert\duk_print_alert.c /Feduk-%VCNAME%-%PLATFORM%.exe - cmd: cl /W3 /O2 /Iprep-dll /LD /Feduktape-%VCNAME%-%PLATFORM% prep-dll\duktape.c - cmd: cl /W3 /O2 /DDUK_CMDLINE_PRINTALERT_SUPPORT /Iprep-dll /Iexamples\cmdline /Iextras\print-alert examples\cmdline\duk_cmdline.c extras\print-alert\duk_print_alert.c /Feduk-dll-%VCNAME%-%PLATFORM%.exe duktape-%VCNAME%-%PLATFORM%.lib - cmd: cl /TP /EHsc /W3 /O2 /DDUK_CMDLINE_PRINTALERT_SUPPORT /Iprep-cpp /Iexamples\cmdline /Iextras\print-alert prep-cpp\duktape.c examples\cmdline\duk_cmdline.c extras\print-alert\duk_print_alert.c /Feduk-cxx-%VCNAME%-%PLATFORM%.exe test_script: - cmd: echo --- VS2015 - cmd: duk-vs2015-%PLATFORM%.exe -e "print(Duktape.env); print('Hello world!');" - cmd: duk-dll-vs2015-%PLATFORM%.exe -e "print(Duktape.env); print('Hello world!');" - cmd: duk-cxx-vs2015-%PLATFORM%.exe -e "print(Duktape.env); print('Hello world!');" - cmd: echo --- VS2013 - cmd: duk-vs2013-%PLATFORM%.exe -e "print(Duktape.env); print('Hello world!');" - cmd: duk-dll-vs2013-%PLATFORM%.exe -e "print(Duktape.env); print('Hello world!');" - cmd: duk-cxx-vs2013-%PLATFORM%.exe -e "print(Duktape.env); print('Hello world!');" - cmd: echo --- VS2012 - cmd: duk-vs2012-%PLATFORM%.exe -e "print(Duktape.env); print('Hello world!');" - cmd: duk-dll-vs2012-%PLATFORM%.exe -e "print(Duktape.env); print('Hello world!');" - cmd: duk-cxx-vs2012-%PLATFORM%.exe -e "print(Duktape.env); print('Hello world!');" - cmd: echo --- VS2010 - cmd: duk-vs2010-%PLATFORM%.exe -e "print(Duktape.env); print('Hello world!');" - cmd: duk-dll-vs2010-%PLATFORM%.exe -e "print(Duktape.env); print('Hello world!');" - cmd: duk-cxx-vs2010-%PLATFORM%.exe -e "print(Duktape.env); print('Hello world!');" - cmd: echo --- VS2008 - cmd: duk-vs2008-%PLATFORM%.exe -e "print(Duktape.env); print('Hello world!');" - cmd: duk-dll-vs2008-%PLATFORM%.exe -e "print(Duktape.env); print('Hello world!');" - cmd: duk-cxx-vs2008-%PLATFORM%.exe -e "print(Duktape.env); print('Hello world!');" after_build: # Show what was built. - cmd: dir artifacts: - path: duk-*.exe name: Duk command line binary - path: duktape-*.dll name: Duktape DLL - path: duktape-*.exp name: Duktape EXP - path: duktape-*.lib name: Duktape LIB