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

Commit 5d5dff4

Browse files
committed
Merge pull request #818 from am11/master
Build: Adding libsass.gyp in a separate dir
2 parents 6a169d2 + e75de50 commit 5d5dff4

9 files changed

+128
-151
lines changed

binding.gyp

+31-46
Original file line numberDiff line numberDiff line change
@@ -8,42 +8,6 @@
88
'src/custom_function_bridge.cpp',
99
'src/custom_importer_bridge.cpp',
1010
'src/sass_context_wrapper.cpp',
11-
'src/libsass/ast.cpp',
12-
'src/libsass/base64vlq.cpp',
13-
'src/libsass/bind.cpp',
14-
'src/libsass/cencode.c',
15-
'src/libsass/constants.cpp',
16-
'src/libsass/context.cpp',
17-
'src/libsass/contextualize.cpp',
18-
'src/libsass/cssize.cpp',
19-
'src/libsass/emitter.cpp',
20-
'src/libsass/error_handling.cpp',
21-
'src/libsass/eval.cpp',
22-
'src/libsass/expand.cpp',
23-
'src/libsass/extend.cpp',
24-
'src/libsass/file.cpp',
25-
'src/libsass/functions.cpp',
26-
'src/libsass/inspect.cpp',
27-
'src/libsass/json.cpp',
28-
'src/libsass/node.cpp',
29-
'src/libsass/output.cpp',
30-
'src/libsass/parser.cpp',
31-
'src/libsass/plugins.cpp',
32-
'src/libsass/position.cpp',
33-
'src/libsass/prelexer.cpp',
34-
'src/libsass/remove_placeholders.cpp',
35-
'src/libsass/sass.cpp',
36-
'src/libsass/sass2scss.cpp',
37-
'src/libsass/sass_context.cpp',
38-
'src/libsass/sass_functions.cpp',
39-
'src/libsass/sass_util.cpp',
40-
'src/libsass/sass_values.cpp',
41-
'src/libsass/source_map.cpp',
42-
'src/libsass/to_c.cpp',
43-
'src/libsass/to_string.cpp',
44-
'src/libsass/units.cpp',
45-
'src/libsass/utf8_string.cpp',
46-
'src/libsass/util.cpp',
4711
'src/sass_types/boolean.cpp',
4812
'src/sass_types/color.cpp',
4913
'src/sass_types/error.cpp',
@@ -57,17 +21,38 @@
5721
'include_dirs': [
5822
'<!(node -e "require(\'nan\')")',
5923
],
60-
'cflags!': [
61-
'-fno-exceptions'
62-
],
63-
'cflags_cc!': [
64-
'-fno-exceptions'
65-
],
66-
'cflags_cc': [
67-
'-fexceptions',
68-
'-frtti'
69-
],
7024
'conditions': [
25+
['libsass_ext == ""', {
26+
'dependencies': [
27+
'src/libsass.gyp:libsass',
28+
]
29+
}],
30+
['libsass_ext == "auto"', {
31+
'cflags_cc': [
32+
'<!(pkg-config --cflags libsass)',
33+
],
34+
'link_settings': {
35+
'ldflags': [
36+
'<!(pkg-config --libs-only-other --libs-only-L libsass)',
37+
],
38+
'libraries': [
39+
'<!(pkg-config --libs-only-l libsass)',
40+
],
41+
}
42+
}],
43+
['libsass_ext == "yes"', {
44+
'cflags_cc': [
45+
'<(libsass_cflags)',
46+
],
47+
'link_settings': {
48+
'ldflags': [
49+
'<(libsass_ldflags)',
50+
],
51+
'libraries': [
52+
'<(libsass_library)',
53+
],
54+
}
55+
}],
7156
['OS=="mac"', {
7257
'xcode_settings': {
7358
'OTHER_CPLUSPLUSFLAGS': [

libsass.gyp

-94
This file was deleted.

scripts/build.js

+4-1
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,10 @@ function afterBuild(options) {
5353
*/
5454

5555
function build(options) {
56-
var args = [path.join('node_modules', 'pangyp', 'bin', 'node-gyp'), 'rebuild'].concat(options.args);
56+
var args = [path.join('node_modules', 'pangyp', 'bin', 'node-gyp'), 'rebuild'].concat(
57+
['libsass_ext', 'libsass_cflags', 'libsass_ldflags', 'libsass_library'].map(function(subject) {
58+
return ['--', subject, '=', process.env[subject.toUpperCase()] || ''].join('');
59+
})).concat(options.args);
5760

5861
console.log(['Building:', process.sass.runtime.execPath].concat(args).join(' '));
5962

src/custom_function_bridge.h

+1-3
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,11 @@
22
#define CUSTOM_FUNCTION_BRIDGE_H
33

44
#include <nan.h>
5-
#include "libsass/sass_context.h"
5+
#include <sass_context.h>
66
#include "callback_bridge.h"
77

8-
98
using namespace v8;
109

11-
1210
class CustomFunctionBridge : public CallbackBridge<Sass_Value*> {
1311
public:
1412
CustomFunctionBridge(NanCallback* cb, bool is_sync) : CallbackBridge<Sass_Value*>(cb, is_sync) {}

src/custom_importer_bridge.h

+1-4
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,13 @@
22
#define CUSTOM_IMPORTER_BRIDGE_H
33

44
#include <nan.h>
5-
#include "libsass/sass_context.h"
5+
#include <sass_context.h>
66
#include "callback_bridge.h"
77

8-
98
using namespace v8;
109

11-
1210
typedef Sass_Import** SassImportList;
1311

14-
1512
class CustomImporterBridge : public CallbackBridge<SassImportList> {
1613
public:
1714
CustomImporterBridge(NanCallback* cb, bool is_sync) : CallbackBridge<SassImportList>(cb, is_sync) {}

src/libsass.gyp

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

src/sass_context_wrapper.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
#include <nan.h>
66
#include <stdlib.h>
77
#include <condition_variable>
8-
#include "libsass/sass_context.h"
8+
#include <sass_context.h>
99
#include "custom_function_bridge.h"
1010
#include "custom_importer_bridge.h"
1111

src/sass_types/factory.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
#define SASS_TYPES_FACTORY_H
33

44
#include <nan.h>
5-
#include "../libsass/sass_values.h"
5+
#include <sass_values.h>
66
#include "value.h"
77

88
namespace SassTypes

src/sass_types/value.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
#define SASS_TYPES_VALUE_H
33

44
#include <nan.h>
5-
#include "../libsass/sass_values.h"
5+
#include <sass_values.h>
66

77
namespace SassTypes
88
{

0 commit comments

Comments
 (0)