Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit 8c9399d

Browse files
committed
Build with the unbundled libsass
If PKGCONFIG is set to YES in the proces environment, use pkg-config to locate system libsass to be linked. This way there is no need to checkout a src/libsass submodule at all and the library from the package management system can be used. Otherwise fallback to the bundled libsass. By default, use the bundled library. PR: #139 PR: #389 PR: #744
1 parent c97411e commit 8c9399d

File tree

3 files changed

+117
-48
lines changed

3 files changed

+117
-48
lines changed

binding.gyp

Lines changed: 17 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -4,56 +4,26 @@
44
'target_name': 'binding',
55
'sources': [
66
'src/binding.cpp',
7-
'src/sass_context_wrapper.cpp',
8-
'src/libsass/ast.cpp',
9-
'src/libsass/base64vlq.cpp',
10-
'src/libsass/bind.cpp',
11-
'src/libsass/cencode.c',
12-
'src/libsass/constants.cpp',
13-
'src/libsass/context.cpp',
14-
'src/libsass/contextualize.cpp',
15-
'src/libsass/copy_c_str.cpp',
16-
'src/libsass/error_handling.cpp',
17-
'src/libsass/eval.cpp',
18-
'src/libsass/expand.cpp',
19-
'src/libsass/extend.cpp',
20-
'src/libsass/file.cpp',
21-
'src/libsass/functions.cpp',
22-
'src/libsass/inspect.cpp',
23-
'src/libsass/json.cpp',
24-
'src/libsass/node.cpp',
25-
'src/libsass/output_compressed.cpp',
26-
'src/libsass/output_nested.cpp',
27-
'src/libsass/parser.cpp',
28-
'src/libsass/prelexer.cpp',
29-
'src/libsass/remove_placeholders.cpp',
30-
'src/libsass/sass.cpp',
31-
'src/libsass/sass2scss.cpp',
32-
'src/libsass/sass_context.cpp',
33-
'src/libsass/sass_functions.cpp',
34-
'src/libsass/sass_util.cpp',
35-
'src/libsass/sass_values.cpp',
36-
'src/libsass/source_map.cpp',
37-
'src/libsass/to_c.cpp',
38-
'src/libsass/to_string.cpp',
39-
'src/libsass/units.cpp',
40-
'src/libsass/utf8_string.cpp',
41-
'src/libsass/util.cpp'
7+
'src/sass_context_wrapper.cpp'
428
],
439
'include_dirs': [
44-
'<!(node -e "require(\'nan\')")'
45-
],
46-
'cflags!': [
47-
'-fno-exceptions'
48-
],
49-
'cflags_cc!': [
50-
'-fno-exceptions'
51-
],
52-
'cflags_cc': [
53-
'-fexceptions',
54-
'-frtti'
10+
'<!(node -e "require(\'nan\')")',
5511
],
5612
'conditions': [
13+
[ 'PKGCONFIG == "YES"', {
14+
'cc_flags': [
15+
'<!(pkg-config --cflags libsass)',
16+
],
17+
'link_settings': {
18+
'ldflags': [
19+
'<!(pkg-config --libs libsass)',
20+
],
21+
},
22+
}, {
23+
'dependencies': [
24+
'libsass.gyp:libsass',
25+
]
26+
}],
5727
['OS=="mac"', {
5828
'xcode_settings': {
5929
'OTHER_CPLUSPLUSFLAGS': [
@@ -67,7 +37,7 @@
6737
'GCC_ENABLE_CPP_RTTI': 'YES',
6838
'MACOSX_DEPLOYMENT_TARGET': '10.7'
6939
}
70-
}],
40+
}],
7141
['OS=="win"', {
7242
'msvs_settings': {
7343
'VCCLCompilerTool': {

libsass.gyp

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
{
2+
'targets': [
3+
{
4+
'target_name': 'libsass',
5+
'type': 'static_library',
6+
'product_prefix': 'lib',
7+
'sources': [
8+
'src/libsass/ast.cpp',
9+
'src/libsass/base64vlq.cpp',
10+
'src/libsass/bind.cpp',
11+
'src/libsass/cencode.c',
12+
'src/libsass/constants.cpp',
13+
'src/libsass/context.cpp',
14+
'src/libsass/contextualize.cpp',
15+
'src/libsass/copy_c_str.cpp',
16+
'src/libsass/error_handling.cpp',
17+
'src/libsass/eval.cpp',
18+
'src/libsass/expand.cpp',
19+
'src/libsass/extend.cpp',
20+
'src/libsass/file.cpp',
21+
'src/libsass/functions.cpp',
22+
'src/libsass/inspect.cpp',
23+
'src/libsass/json.cpp',
24+
'src/libsass/node.cpp',
25+
'src/libsass/output_compressed.cpp',
26+
'src/libsass/output_nested.cpp',
27+
'src/libsass/parser.cpp',
28+
'src/libsass/prelexer.cpp',
29+
'src/libsass/remove_placeholders.cpp',
30+
'src/libsass/sass.cpp',
31+
'src/libsass/sass2scss.cpp',
32+
'src/libsass/sass_context.cpp',
33+
'src/libsass/sass_functions.cpp',
34+
'src/libsass/sass_util.cpp',
35+
'src/libsass/sass_values.cpp',
36+
'src/libsass/source_map.cpp',
37+
'src/libsass/to_c.cpp',
38+
'src/libsass/to_string.cpp',
39+
'src/libsass/units.cpp',
40+
'src/libsass/utf8_string.cpp',
41+
'src/libsass/util.cpp'
42+
],
43+
'cflags!': [
44+
'-fno-exceptions'
45+
],
46+
'cflags_cc!': [
47+
'-fno-exceptions'
48+
],
49+
'cflags_cc': [
50+
'-fexceptions',
51+
'-frtti'
52+
],
53+
'direct_dependent_settings': {
54+
'include_dirs': [ 'src/libsass' ],
55+
},
56+
'conditions': [
57+
['OS=="mac"', {
58+
'xcode_settings': {
59+
'OTHER_CPLUSPLUSFLAGS': [
60+
'-std=c++11',
61+
'-stdlib=libc++'
62+
],
63+
'OTHER_LDFLAGS': [
64+
'-stdlib=libc++'
65+
],
66+
'GCC_ENABLE_CPP_EXCEPTIONS': 'YES',
67+
'GCC_ENABLE_CPP_RTTI': 'YES',
68+
'MACOSX_DEPLOYMENT_TARGET': '10.7'
69+
}
70+
}],
71+
['OS=="win"', {
72+
'msvs_settings': {
73+
'VCCLCompilerTool': {
74+
'AdditionalOptions': [
75+
'/GR',
76+
'/EHsc'
77+
]
78+
}
79+
},
80+
'msvs_disabled_warnings': [
81+
# conversion from `double` to `size_t`, possible loss of data
82+
4244,
83+
# decorated name length exceeded
84+
4503
85+
]
86+
}],
87+
['OS!="win"', {
88+
'cflags_cc+': [
89+
'-std=c++0x'
90+
]
91+
}]
92+
]
93+
}
94+
]
95+
}

scripts/build.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,11 @@ function afterBuild(options) {
5353
*/
5454

5555
function build(options) {
56-
var arguments = [path.join('node_modules', 'pangyp', 'bin', 'node-gyp'), 'rebuild'].concat(options.args);
56+
var arguments = [
57+
path.join('node_modules', 'pangyp', 'bin', 'node-gyp'),
58+
'rebuild',
59+
[ '-PKGCONFIG=', process.env.PKGCONFIG || 'NO' ].join(''),
60+
].concat(options.args);
5761

5862
console.log(['Building:', process.sass.runtime.execPath].concat(arguments).join(' '));
5963

0 commit comments

Comments
 (0)