# file : tests/new.test # copyright : Copyright (c) 2014-2017 Code Synthesis Ltd # license : MIT; see accompanying LICENSE file .include common.test status += -d prj cxx = cc "config.cxx=$config.cxx" : exe { $* -t exe -l c++ prj 2>>/"EOE" &prj/***; created new executable project prj in $~/prj/ EOE $build prj/ 2>>/EOE c++ prj/prj/cxx{prj} ld prj/prj/exe{prj} EOE } : lib { $* -t lib -l c++ libprj 2>>/"EOE" &libprj/***; created new library project libprj in $~/libprj/ EOE $build libprj/ 2>>/~%EOE% %.{4} %ld libprj/.+%{3} EOE } : cfg { : dir-and-name : { $* -C prj-config @cfg prj $cxx 2>>/~"%EOE%" &prj/*** &prj-config/***; created new executable project prj in $~/prj/ created configuration @cfg $~/prj-config/ \(1, default, forwarded, auto-synchronized\) synchronizing: % new prj.+19700101000000% EOE $status >'prj configured 0.1.0-a.0.19700101000000'; $build prj/ 2>>/EOE mkdir prj-config/prj/fsdir{prj/} c++ prj/prj/cxx{prj}@prj-config/prj/prj/ ld prj-config/prj/prj/exe{prj} ln prj-config/prj/prj/exe{prj} -> prj/prj/ EOE } : name : : Test deducing the configuration directory path from project source : directory path and configuration name. Here we also use the dash-prefixed : name (as in Windows PowerShell where the leading '@' character is special). : { $* -C -@cfg prj $cxx 2>>/~"%EOE%" &prj/*** &prj-cfg/***; created new executable project prj in $~/prj/ created configuration @cfg $~/prj-cfg/ \(1, default, forwarded, auto-synchronized\) synchronizing: % new prj.+19700101000000% EOE $status >'prj configured 0.1.0-a.0.19700101000000'; $build prj/ 2>>/EOE mkdir prj-cfg/prj/fsdir{prj/} c++ prj/prj/cxx{prj}@prj-cfg/prj/prj/ ld prj-cfg/prj/prj/exe{prj} ln prj-cfg/prj/prj/exe{prj} -> prj/prj/ EOE } }