Fabriquer le LibSass
libsass n'est qu'une bibliothèque et ne fait pas grand-chose en soi. Vous avez besoin d'une implémentation utilisable en ligne de commande, ou de liaisons/implémentations pour l'utiliser dans votre langage de programmation préféré. Vous devriez pouvoir exécuter sassc en suivant les instructions de ce guide.
Avant de commencer, consultez la section «Configuration de l'environnement de développement».
Création sur différents systèmes d'exploitation
Il s'efforce de maintenir le code aussi indépendant du système d'exploitation et conforme aux normes que possible. La lecture de fichiers depuis le système de fichiers nécessite une partie du code dépendant du système d'exploitation, mais il utilise à terme une implémentation compatible POSIX. Il utilise certaines fonctionnalités de C++11, mais il s'engage pour l'instant à n'utiliser qu'unordered_map. Cela signifie qu'un compilateur récent sera nécessaire sur la plupart des systèmes (gcc 4.5 semble être le minimum).
Compilation sous Linux (et autres versions *nix)
Linux est la cible principale de libsass et il prenne en charge deux méthodes de compilation. Les anciens fichiers makefiles devraient toujours fonctionner sur la plupart des systèmes (y compris MinGW), tandis que la compilation avec autotools est préférable pour créer une [bibliothèque système] (expérimental).
Compilation sous Windows (expérimental)
La prise en charge de la compilation sous Windows a été ajoutée très récemment et doit être considérée comme expérimentale.
Compilation sur Max OS X (non testé)
Fonctionnement identique à Linux, mais vous pouvez également installer LibSass via homebrew.
Création d'une bibliothèque système (expérimental)
Comme libsass est une bibliothèque, il est logique de l'installer en tant que bibliothèque partagée sur votre système. Sous Linux, cela implique de créer une bibliothèque .so via autotools. Cela devrait déjà fonctionner correctement, mais nous ne sommes pas encore certains de maintenir l'ABI à 100 % stable. Cela devrait être le cas une fois que nous aurons augmenté le numéro de version de la bibliothèque à 1.0.0 ou supérieur. Sous Windows, vous devriez pouvoir obtenir une DLL en créant une compilation partagée avec MinGW. Il n'existe actuellement aucune cible pour cela dans les fichiers de projet MSVC.
Création à partir de vcpkg
Le portage libsass dans vcpkg est maintenu à jour par les membres de l'équipe Microsoft et les contributeurs de la communauté. Vous pouvez télécharger et installer libsass à l'aide du gestionnaire de dépendances vcpkg :
git clone https://github.com/Microsoft/vcpkg.git cd vcpkg ./bootstrap-vcpkg.sh # ./bootstrap-vcpkg.bat for Windows ./vcpkg integrate install ./vcpkg install libsass |
Si la version est obsolète, veuillez créer un ticket ou une pull request sur le dépôt vcpkg.
Compilation avec clang au lieu de gcc
Pour utiliser clang, il suffit de définir les variables d'environnement appropriées :
export CC=/usr/bin/clang export CXX=/usr/bin/clang++ |
Exécution de la suite de tests de spécifications
Nous testons constamment et automatiquement libsass par rapport à la suite de tests de spécifications officielle. Pour ce faire, nous avons besoin d'un exécuteur de tests (écrit en Ruby) et d'un outil en ligne de commande (sassc) pour exécuter les tests. Nous devons donc compiler sassc. Pour ce faire, les fichiers de build des trois projets doivent fonctionner ensemble. La qualité peut varier selon les versions de build. Ruby (2.1) est indispensable (la version 1.9 semble poser problème, du moins sous Windows). Vous devez également installer quelques gemmes :
ruby -v gem install minitest # devrait être facultatif gem install minitap |
Inclure la version de LibSass
LibSass contient une fonction permettant de connaître la version actuelle. Elle doit être définie à la compilation. Nous utilisons pour cela une macro C, définie en appelant g++ -DLIBSASS_VERSION="\"x.y.z.\"". Les deux guillemets sont nécessaires, car la chaîne doit être valide. Normalement, vous n'avez rien à faire si vous utilisez les makefiles ou les autotools. Ils tenteront de récupérer la version directement via Git. Si vous ne disposez que des sources sans le dépôt Git, vous pouvez passer la version comme variable d'environnement à make ou configure :
export LIBSASS_VERSION="x.y.z." |
Intégration continue
Il utilise deux services d'intégration continue pour tester automatiquement tous les commits par rapport à la suite de tests la plus récente.
- Statut de build de LibSass sur GitHub Actions (Linux)
- Statut de build de LibSass sur AppVeyor (Windows)
Pourquoi ne pas utiliser CMake ?
Ils ont essayé de compiler libsass avec CMake, ce qui devrait faciliter la création de fichiers de build pour Linux et Windows. Malheureusement, cela n'a pas abouti. Ils sont néanmoins ouverts aux demandes de publication.