にゃははー

はへらー

Boost.Build

C++ Advent Clandar 2013 1日目 (forkした方)

※注: これはforkした方の。C++ (fork) Advent Calendar 2013 - Adventar今年もAdvent Calendarの季節です。 しかも驚くべきことにC++ Advent Calendarはforkしました。あと先に断っておきますが、25日やらないです。 立ちあげた本人が表にもこちらにも書こう…

UPDATE_NOWの引数

自分向けの覚書 rule UPDATE_NOW ( target * : out-fd ? : force ? : continue ? ) target virtual-targetに対してactualizeしたabstract-target out-fd このupdateでのstdout/stderrの出力を吐き出すfile descriptor fdはFILE_OPENで引っ張ってくる force !…

複数のobjを束ねる

例えばあるprojectがあって、 project / : source-location ./src ; exe x : [ glob *.cpp ] ;とあるぐらいなら別に問題にならないけど、 project / : source-location ./src ; obj module/a : module/a.cpp ; obj module/b : module/b.cpp ; alias module :…

Boost.Build v2の誰てめ

ところで君はだれだい? numbers.log10 名前の通り常用対数を取るruleです。 import numbers ; ECHO [ numbers.log10 1 ] ; # => 0 ECHO [ numbers.log10 100 ] ; # => 2注意なのが、bjamは全て文字列で処理するのでパラメータと戻り値は全て正数です。悲し…

tools/boostbook/setup_boostbook.(sh|py)が加えるuser-config.jamへの変更

$HOMEにuser-config.jamを置いている場合、user-config.jamが変更されるため単なるビルドでもエラーになってしまう場合があります。もちろんuser-config.jamを$HOMEに置いたりbjam Advent Calendar jp 2011を読むぐらいの皆さんですからこんな事書かなくても…

bjam AdC jp 2011 25日目

らすとです。 jamではなくPythonで Python知らんし別にJamで困ってないので問題ないのではということに気づきました。 まとめ 結局私を助けてくれる人は一人もいませんでした。

bjam AdC jp 2011 23日目

はー Boost.Build PythonPortとは ラスト二回はPythonPortについてにします。と言っても使ったこと無いのでドキュメント見ながら書いてます。 Boost.Build PythonPortに関するドキュメントはこちら。※注 Boost.Build PythonPortは現状でexperimental扱いです…

bjam AdC jp 2011 21日目

つらいれす... フラグとか共通化 feature.extend toolset : nvcc ; toolset.inherit-generators nvcc : unix : unix.link unix.link.dll ; toolset.inherit nvcc : unix ; generators.override nvcc.prebuilt : builtin.lib-generator ; generators.override…

bjam AdC jp 2011 19日目

やっべーはてな時間で日付計算してたわー前回大まかな流れを説明したので今回はtype/cuda.jamです。が、これは単純で説明も何も無いのでちょっと掘り進めます。 scanner 前回ものすごくシンプルなcuda-scannerを示しました。というより単純に派生して何もし…

bjam AdC jp 2011 17日目

遅れてしまった...というか忘れてた...今回からは何回かに分けてtoolsetについてやります。といっても私自身あんまりわかってないので昔書いたnvcc.jamを元に適当に説明します。nvcc.jamは http://www.flast.jp/browser/btc/tools にあります。 toolsetとは…

bjam AdC jp 2011 15日目

はてなさんは7時に日付変わるから遅れてない!11日目あたりでruleの引数もsequenceだとか言ってましたけどその説明します。なんとか一日でも潰したいのでこの際ナンデモアリです。 rule 例えば適当なruleを書きます。 rule foo ( bar : baz ? : qux + : quux…

bjam AdC jp 2011 13日目

死にそう... select-highest-ranked rule 時間もないしネタもないし前回飛ばしたこいつを見てみます。と言ってみたものの、よくよく考えるとそれほど面倒ではないです、、、シグネチャは rule select-highest-ranked ( elements * : ranks * )です。ここでel…

bjam AdC jp 2011 11日目

はいはいーすすめます。 sequenceモジュール Boost 1.48.0時点でのsequenceモジュールのrule一覧です。 rule filter ( predicate + : sequence * ) rule transform ( function + : sequence * ) rule reverse ( s * ) rule less ( a b ) rule insertion-sort…

bjam AdC jp 2011 9日目

疲れてます。ちなみに 所謂オブジェクト指向言語はオブジェクト指向してないんじゃないかというなにか - Flast?なにそれ、おいしいの? の内容は忘れて読んでください。忘れろ。 クラス bjamはクラスをもってます。OOPです!お姉ちゃんにパンツの色聞きまし…

bjam AdC jp 2011 7日目

いつもどおり進みます。参照:2006-02-05 testingモジュール testingモジュールはテスト機能を提供するモジュールです。一般に使用するruleは以下の6つだと思います。unit-test ruleは歴史的理由であるみたいな曖昧なことが書いてあるのでここでは解説しませ…

bjam AdC jp 2011 5日目

Boost.勉強会 #7東京で同士を募ったらATNDの参加者が0人増えてました!!!!!やったねたえちゃん!!! よくねぇよッッッッ!!!!!!!!!!!!!めんどいんで進みます。 aliasモジュール ある程度プロジェクトが大きくなってくるとビルドターゲットが増えてきます。通常、obj/…

bjam AdC jp 2011 3日目

はー前置きめんどいんで進みます...あ、まさかの問題が発生していますが私は私のやる日だけpostします。 pathモジュールつづき 前回に引き続きpathモジュールについてです。決してネタがないわけではないです*1。 パスの表現を正規化する UNIX系OSではパスを…

bjam AdC jp 2011 1日目

ついに始まりましたbjam Advent Calendar jp 2011!!これから25日かけてbjamのtipsを書き連ねていきます。 しかもなんと参加者2人!つまり25日を1人で書く予定が13日程度でいいことになります!!!!第1回目の今日はpathモジュールについて少し触れること…

さりげない追加

Boost 1.46.1あたりからでしょうかbjamをコンパイルするとbjamと一緒にb2という全く同一のバイナリが生成されるようになりました。 2文字削ることに命かけているひとには嬉しい追加ですね(謎 - 3/31 追記 どうやら1.46.1では入っていない様です。1.47から入…

BOOST_ROOTからライブラリを引っ張ってくる(失敗

普段は/usr/local/lib/の下のバイナリを-lboost_unit_test_frameworkで引っ張ってくるんだけど、出来たらuse-projectからリンクしたんだけどな…ってことで簡単に書くと import os ; BOOST_ROOT = [ os.environ BOOST_ROOT ] ; use-project /boost : $(BOOST_…

bjamに渡されるコマンドライン引数を取得する

例えばコマンドライン引数が必要になったとしよう、どうすればいいだろうか。 modulesモジュールが解決してくれる。 import modules ; .argv = [ modules.peek : ARGV ] ; ECHO $(.argv) ; とある場合、bjam hogeと実行するとそのままbjam hogeと出力された…

bjamで作ったバイナリを実行する

@manga_osyoとこんなやりとりがあった window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platfor…

決めた!おれプロのjammerになる!