@@ -632,7 +632,12 @@ <h1><a href="https://github.com/bloomberg/bucklescript">BuckleScript</a> User Ma
632
632
</ li >
633
633
< li > < a href ="#_build_system_support "> Build system support</ a >
634
634
< ul class ="sectlevel2 ">
635
- < li > < a href ="#_build_with_bsb "> Build with bsb</ a > </ li >
635
+ < li > < a href ="#_bucklescript_build_system_code_bsb_code "> BuckleScript build system: < code > bsb</ code > </ a >
636
+ < ul class ="sectlevel3 ">
637
+ < li > < a href ="#_build_with_other_bucklescript_dependencies "> Build with other BuckleScript dependencies</ a > </ li >
638
+ < li > < a href ="#_mark_your_directory_as_dev_only "> Mark your directory as dev only</ a > </ li >
639
+ </ ul >
640
+ </ li >
636
641
< li > < a href ="#_build_using_make "> Build using Make</ a > </ li >
637
642
</ ul >
638
643
</ li >
@@ -3769,27 +3774,22 @@ <h2 id="_build_system_support"><a class="anchor" href="#_build_system_support"><
3769
3774
</ table >
3770
3775
</ div >
3771
3776
< div class ="sect2 ">
3772
- < h3 id ="_build_with_bsb "> < a class ="anchor " href ="#_build_with_bsb "> </ a > Build with bsb</ h3 >
3777
+ < h3 id ="_bucklescript_build_system_code_bsb_code "> < a class ="anchor " href ="#_bucklescript_build_system_code_bsb_code "> </ a > BuckleScript build system: < code > bsb</ code > </ h3 >
3773
3778
< div class ="paragraph ">
3774
- < p > BuckleScript proivdes a native build tool using < a href ="https://github.com/ninja-build/ninja/releases "> ninja</ a > ,
3775
- it is designed for fast feedback loop (typically 100ms feedback loop).</ p >
3779
+ < p > BuckleScript proivdes a native build tool on top of Google’s < a href ="https://github.com/ninja-build/ninja/releases "> ninja-build </ a > ,
3780
+ it is designed for fast feedback loop (typically 100ms feedback loop) and works cross platform .</ p >
3776
3781
</ div >
3777
- < div class ="admonitionblock note ">
3778
- < table >
3779
- < tr >
3780
- < td class ="icon ">
3781
- < div class ="title "> Note</ div >
3782
- </ td >
3783
- < td class ="content ">
3782
+ < div class ="exampleblock ">
3783
+ < div class ="content ">
3784
3784
< div class ="paragraph ">
3785
- < p > Currently user needs install ninja first (version >= 1.7.1)</ p >
3785
+ < p > Currently for non-Windows users, they needs install ninja first (version >= 1.7.1),
3786
+ please don’t be confused with the npm ninja,
3787
+ we are using Google’s < a href ="https://github.com/ninja-build/ninja/releases "> ninja-build</ a > .</ p >
3788
+ </ div >
3786
3789
</ div >
3787
- </ td >
3788
- </ tr >
3789
- </ table >
3790
3790
</ div >
3791
3791
< div class ="paragraph ">
3792
- < p > It is a schema based build tool, the schema is
3792
+ < p > < code > bsb </ code > can be running in any subdirectory, it is a schema based build tool, the schema is
3793
3793
< a href ="http://bloomberg.github.io/bucklescript/docson/#build-schema.json "> available</ a > </ p >
3794
3794
</ div >
3795
3795
< div class ="paragraph ">
@@ -3870,9 +3870,111 @@ <h3 id="_build_with_bsb"><a class="anchor" href="#_build_with_bsb"></a>Build wit
3870
3870
< pre class ="pygments highlight "> < code data-lang ="sh "> bsb -w</ code > </ pre >
3871
3871
</ div >
3872
3872
</ div >
3873
+ < div class ="sect3 ">
3874
+ < h4 id ="_build_with_other_bucklescript_dependencies "> < a class ="anchor " href ="#_build_with_other_bucklescript_dependencies "> </ a > Build with other BuckleScript dependencies</ h4 >
3875
+ < div class ="paragraph ">
3876
+ < p > List your dependency in < code > bs-dependencies</ code > and install it via < code > npm install</ code > as below:</ p >
3877
+ </ div >
3878
+ < div class ="listingblock ">
3879
+ < div class ="title "> bsconfig.json</ div >
3880
+ < div class ="content ">
3881
+ < pre class ="pygments highlight "> < code data-lang ="js "> < span class ="tok-p "> {</ span >
3882
+ < span class ="tok-s2 "> "name"</ span > < span class ="tok-o "> :</ span > < span class ="tok-s2 "> "bs-string"</ span > < span class ="tok-p "> ,</ span >
3883
+ < span class ="tok-s2 "> "version"</ span > < span class ="tok-o "> :</ span > < span class ="tok-s2 "> "0.1.3"</ span > < span class ="tok-p "> ,</ span >
3884
+ < span class ="tok-s2 "> "bs-dependencies"</ span > < span class ="tok-o "> :</ span > < span class ="tok-p "> [</ span >
3885
+ < span class ="tok-s2 "> "bs-mocha"</ span > < b class ="conum "> (1)</ b >
3886
+ < span class ="tok-p "> ],</ span >
3887
+ < span class ="tok-s2 "> "sources"</ span > < span class ="tok-o "> :</ span > < span class ="tok-p "> [</ span >
3888
+ < span class ="tok-p "> ..</ span > < span class ="tok-p "> .</ span >
3889
+ < span class ="tok-p "> ],</ span >
3890
+ < span class ="tok-s2 "> "generate-merlin"</ span > < span class ="tok-o "> :</ span > < span class ="tok-kc "> true</ span > < b class ="conum "> (2)</ b >
3891
+ < span class ="tok-p "> }</ span > </ code > </ pre >
3892
+ </ div >
3893
+ </ div >
3894
+ < div class ="colist arabic ">
3895
+ < ol >
3896
+ < li >
3897
+ < p > Yet another BuckleScript dependency</ p >
3898
+ </ li >
3899
+ < li >
3900
+ < p > bsb will generate merlin file for you</ p >
3901
+ </ li >
3902
+ </ ol >
3903
+ </ div >
3904
+ < div class ="listingblock ">
3905
+ < div class ="title "> package.json</ div >
3906
+ < div class ="content ">
3907
+ < pre class ="pygments highlight "> < code data-lang ="js "> < span class ="tok-p "> {</ span >
3908
+ < span class ="tok-s2 "> "dependencies"</ span > < span class ="tok-o "> :</ span > < span class ="tok-p "> {</ span >
3909
+ < span class ="tok-s2 "> "bs-mocha"</ span > < span class ="tok-o "> :</ span > < span class ="tok-s2 "> "0.1.5"</ span >
3910
+ < span class ="tok-p "> },</ span >
3911
+ < span class ="tok-p "> ...</ span >
3912
+ < span class ="tok-p "> }</ span > </ code > </ pre >
3913
+ </ div >
3914
+ </ div >
3915
+ < div class ="paragraph ">
3916
+ < p > After your < code > npm install</ code > ,</ p >
3917
+ </ div >
3918
+ < div class ="listingblock ">
3919
+ < div class ="content ">
3920
+ < pre class ="pygments highlight "> < code data-lang ="sh "> bsb -clean-world < b class ="conum "> (1)</ b >
3921
+ bsb -make-world < b class ="conum "> (2)</ b > </ code > </ pre >
3922
+ </ div >
3923
+ </ div >
3924
+ < div class ="colist arabic ">
3925
+ < ol >
3926
+ < li >
3927
+ < p > Clean the binary artifact of current build and your dependency</ p >
3928
+ </ li >
3929
+ < li >
3930
+ < p > Build dependencies and lib itself</ p >
3931
+ </ li >
3932
+ </ ol >
3933
+ </ div >
3934
+ </ div >
3935
+ < div class ="sect3 ">
3936
+ < h4 id ="_mark_your_directory_as_dev_only "> < a class ="anchor " href ="#_mark_your_directory_as_dev_only "> </ a > Mark your directory as dev only</ h4 >
3937
+ < div class ="paragraph ">
3938
+ < p > Note sometimes, you have directories which are just tests that you don’t need your dependent
3939
+ to build in that case you can mark it as dev only</ p >
3940
+ </ div >
3941
+ < div class ="listingblock ">
3942
+ < div class ="title "> bsconfig.json</ div >
3943
+ < div class ="content ">
3944
+ < pre class ="pygments highlight "> < code data-lang ="js "> < span class ="tok-p "> {</ span >
3945
+ < span class ="tok-s2 "> "sources"</ span > < span class ="tok-o "> :</ span > < span class ="tok-p "> {</ span >
3946
+ < span class ="tok-s2 "> "dir"</ span > < span class ="tok-o "> :</ span > < span class ="tok-s2 "> "test"</ span > < span class ="tok-p "> ,</ span >
3947
+ < span class ="tok-s2 "> "type"</ span > < span class ="tok-o "> :</ span > < span class ="tok-s2 "> "dev"</ span > < b class ="conum "> (1)</ b >
3948
+ < span class ="tok-p "> }</ span >
3949
+ < span class ="tok-p "> }</ span > </ code > </ pre >
3950
+ </ div >
3951
+ </ div >
3952
+ < div class ="colist arabic ">
3953
+ < ol >
3954
+ < li >
3955
+ < p > directory < code > test</ code > is in dev mode, it will not be built when used as a dependency</ p >
3956
+ </ li >
3957
+ </ ol >
3958
+ </ div >
3959
+ </ div >
3873
3960
</ div >
3874
3961
< div class ="sect2 ">
3875
3962
< h3 id ="_build_using_make "> < a class ="anchor " href ="#_build_using_make "> </ a > Build using Make</ h3 >
3963
+ < div class ="admonitionblock warning ">
3964
+ < table >
3965
+ < tr >
3966
+ < td class ="icon ">
3967
+ < div class ="title "> Warning</ div >
3968
+ </ td >
3969
+ < td class ="content ">
3970
+ < div class ="paragraph ">
3971
+ < p > < code > bsb</ code > is officialy recommended build system, this section is listed here only for people who
3972
+ are curious about how the build works</ p >
3973
+ </ div >
3974
+ </ td >
3975
+ </ tr >
3976
+ </ table >
3977
+ </ div >
3876
3978
< div class ="paragraph ">
3877
3979
< p > BuckleScript distribution has < code > bsdep.exe</ code > which has the same interface as < code > ocamldep</ code > </ p >
3878
3980
</ div >
0 commit comments