なうびるどいんぐ

脳みそ常時-3dB

libsassをWindows用にコンパイル

      HimaJyun

WindowsでSASSを使いたいなと思う事があったのですが、Rubyを導入するのは大変だったのでlibsassを使う事にしました。

というわけで、libsassをWindows用にコンパイルする方法

スポンサーリンク

Windowsでlibsass

libsassに関する説明は要らないですよね?まぁ雑に言うとSASSのC++実装です。Ruby版より早い。

で、そのlibsassですが、Windows向けバージョンがなかったり、あっても古かったり、DLLが必要だったり。

なので「最新版libsassのdll不要版を作成する」のがこの記事の趣旨

(ちなみにその辺りがどうでも良い人はGitHubのreleaseから使えそうなmsiをダウンロードしてインストールしましょう)

必要な物

VisualStudioが必要です。インストールしていない人はこの辺りでも見ながら適当にインストールしましょう。

それから、ソースコードの取得にGitを使うのでインストールしていない人はGit for Windowsを入れておく。

libsassとsassc

libsassというのはライブラリだけです、sasscはそれをCLIから使えるようにするラッパーみたいなの

libsassだけで良い(プログラムに組み込む)ならlibsassだけをコンパイルして終わりなのですが、今回はCLIから使うのが目的なのでsasscもコンパイルします。

コンパイル

ちなみに今回使ったのはVisualStudio 2017 Communityです。

本来はMSBuildを直接コマンドから呼び出してコンパイルするみたいなのですが、めんどくさいのでVisualStudioからやります。

ソースの取得

libsassディレクトリの中にsasscディレクトリが作成されるように配置する必要があります。

git clone https://github.com/sass/libsass
cd libsass
# 3.5.4の部分は使いたいバージョン
git checkout -b build refs/tags/3.5.4
# libsassの中にsasscディレクトリを作成して移動
git clone https://github.com/sass/sassc
cd sassc
# 3.5.0の部分は使いたいバージョン
git checkout -b build refs/tags/3.5.0

その後、libsass/sassc/winの中にあるsassc.slnをVisualStudioで開きます。

「プロジェクトの再ターゲット」とか出てきた場合はそれに従ってSDKバージョンを更新。

バージョンの修正

このままコンパイルしても良いのですが、このままだとバージョンのsasscとlibsassが「N/A」になって不便なのでバージョンを修正しておこうと思います。

2つのファイルに定数でバージョンが定義されているので、それを書き換えます。

// libsass/include/sass/version.h
//#define LIBSASS_VERSION "[NA]"
#define LIBSASS_VERSION "3.5.4"

// libsass/sassc/sassc_version.h
//#define SASSC_VERSION "[NA]"
#define SASSC_VERSION "3.5.0"

バージョン番号は使用したバージョンに合わせて変更を。

コンパイル

後はVisualStudio上からコンパイル(ビルド)するだけ、ちなみに「Release」でも「Release without static runtime」でもdll不要版が生産される。

何が違うのかというと、ランタイムが「マルチスレッド」か「マルチスレッドDLL」か。マルチスレッドは実行にVC++の再頒布可能パッケージのインストールが不要、マルチスレッドDLLの方がファイルサイズが小さい。(良く分からないなら「Release」を選んでおけばいい、こちらがマルチスレッド版)

必要なら最適化オプションを弄ってもいいかもしれない。

ビルドが完了すると「libsass/sassc/bin」にsassc.exeが生産される、これでSASSのコンパイルが出来る。

 - Web制作