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

Commit ef36b4d

Browse files
committed
Fix broken build setups
1 parent 8faeafd commit ef36b4d

File tree

5 files changed

+46
-38
lines changed

5 files changed

+46
-38
lines changed

MANIFEST.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ include *.hpp
33
include *.cpp
44
include Makefile
55
include Makefile.am
6+
include utf8/*.h
67
include win32/*.h
78
include test/*.scss
8-
include sass2scss/sass2scss.*
99
include README.rst

docs/changes.rst

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,20 @@ Version 0.6.0
66

77
To be released.
88

9+
- Follow up the libsass upstream: :commit:`3.0` --- See the `release note`__
10+
of Libsass.
11+
12+
- Decent extends support
13+
- Basic Sass Maps Support
14+
- Better UTF-8 Support
15+
- ``call()`` function
16+
- Better Windows Support
17+
- Spec Enhancements
18+
919
- Added missing `partial import`_ support. [:issue:`27` by item4]
20+
- :const:`~sass.SOURCE_COMMENTS` became deprecated.
1021

22+
__ https://github.com/sass/libsass/releases/tag/3.0
1123
.. _partial import: http://sass-lang.com/documentation/file.SASS_REFERENCE.html#partials
1224

1325

pysass.c renamed to pysass.cpp

Lines changed: 16 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -18,24 +18,20 @@
1818
#define PySass_Bytes_AS_STRING(o) PyString_AS_STRING(o)
1919
#endif
2020

21+
#ifdef __cplusplus
22+
extern "C" {
23+
#endif
24+
2125
struct PySass_Pair {
2226
char *label;
2327
int value;
2428
};
2529

2630
static struct PySass_Pair PySass_output_style_enum[] = {
27-
{"nested", SASS_STYLE_NESTED},
28-
{"expanded", SASS_STYLE_EXPANDED},
29-
{"compact", SASS_STYLE_COMPACT},
30-
{"compressed", SASS_STYLE_COMPRESSED},
31-
{NULL}
32-
};
33-
34-
static struct PySass_Pair PySass_source_comments_enum[] = {
35-
{"none", SASS_SOURCE_COMMENTS_NONE},
36-
{"line_numbers", SASS_SOURCE_COMMENTS_DEFAULT}, /* alias of "default" */
37-
{"default", SASS_SOURCE_COMMENTS_DEFAULT},
38-
{"map", SASS_SOURCE_COMMENTS_MAP},
31+
{(char *) "nested", SASS_STYLE_NESTED},
32+
{(char *) "expanded", SASS_STYLE_EXPANDED},
33+
{(char *) "compact", SASS_STYLE_COMPACT},
34+
{(char *) "compressed", SASS_STYLE_COMPRESSED},
3935
{NULL}
4036
};
4137

@@ -87,17 +83,16 @@ PySass_compile_filename(PyObject *self, PyObject *args) {
8783

8884
context = sass_new_file_context();
8985
context->input_path = filename;
90-
if (source_comments == SASS_SOURCE_COMMENTS_MAP &&
91-
PySass_Bytes_Check(source_map_filename)) {
86+
if (source_comments && PySass_Bytes_Check(source_map_filename)) {
9287
size_t source_map_file_len = PySass_Bytes_GET_SIZE(source_map_filename);
9388
if (source_map_file_len) {
94-
char *source_map_file = malloc(source_map_file_len + 1);
89+
char *source_map_file = (char *) malloc(source_map_file_len + 1);
9590
strncpy(
9691
source_map_file,
9792
PySass_Bytes_AS_STRING(source_map_filename),
9893
source_map_file_len + 1
9994
);
100-
context->source_map_file = source_map_file;
95+
context->options.source_map_file = source_map_file;
10196
}
10297
}
10398
context->options.output_style = output_style;
@@ -178,13 +173,10 @@ void PySass_make_enum_dict(PyObject *enum_dict, struct PySass_Pair *pairs) {
178173
}
179174

180175
void PySass_init_module(PyObject *module) {
181-
PyObject *output_styles, *source_comments;
176+
PyObject *output_styles;
182177
output_styles = PyDict_New();
183178
PySass_make_enum_dict(output_styles, PySass_output_style_enum);
184179
PyModule_AddObject(module, "OUTPUT_STYLES", output_styles);
185-
source_comments = PyDict_New();
186-
PySass_make_enum_dict(source_comments, PySass_source_comments_enum);
187-
PyModule_AddObject(module, "SOURCE_COMMENTS", source_comments);
188180
}
189181

190182
#if PY_MAJOR_VERSION >= 3
@@ -220,3 +212,7 @@ init_sass()
220212
}
221213

222214
#endif
215+
216+
#ifdef __cplusplus
217+
}
218+
#endif

sass.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
from six import string_types, text_type
2020

21-
from _sass import (OUTPUT_STYLES, SOURCE_COMMENTS, compile_dirname,
21+
from _sass import (OUTPUT_STYLES, compile_dirname,
2222
compile_filename, compile_string)
2323

2424
__all__ = ('MODES', 'OUTPUT_STYLES', 'SOURCE_COMMENTS', 'CompileError',
@@ -34,7 +34,9 @@
3434
#: Keys are mode names, and values are corresponding flag integers.
3535
#:
3636
#: .. versionadded:: 0.4.0
37-
SOURCE_COMMENTS = SOURCE_COMMENTS
37+
#:
38+
#: .. deprecated:: 0.6.0
39+
SOURCE_COMMENTS = {'none': 0, 'line_numbers': 1, 'default': 1, 'map': 2}
3840

3941
#: (:class:`collections.Set`) The set of keywords :func:`compile()` can take.
4042
MODES = set(['string', 'filename', 'dirname'])

setup.py

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -40,17 +40,10 @@
4040
'sass_interface.h', 'sass.h', 'win32/unistd.h'
4141
]
4242
libsass_headers.extend(glob.glob('*.hpp'))
43-
include_dirs = ['sass2scss']
44-
sources = ['pysass.c']
43+
include_dirs = ['utf8']
44+
sources = ['pysass.cpp']
4545
sources.extend(libsass_sources)
4646

47-
if not os.path.isdir('sass2scss') and os.path.isdir('.git'):
48-
print('Submodules seem not initialized yet.'
49-
'You can initialize it by the following command:',
50-
file=sys.stderr)
51-
print('\tgit submodule update --init', file=sys.stderr)
52-
raise SystemExit(1)
53-
5447
if sys.platform == 'win32':
5548
from distutils.msvc9compiler import get_build_version
5649
vscomntools_env = 'VS{0}{1}COMNTOOLS'.format(
@@ -84,13 +77,17 @@ def spawn(self, cmd):
8477
flags = ['-I' + os.path.abspath('win32')]
8578
link_flags = []
8679
else:
87-
flags = ['-fPIC', '-Wall', '-Wno-parentheses']
80+
flags = ['-fPIC', '-xc++', '-std=c++11', '-Wall', '-Wno-parentheses']
8881
platform.mac_ver()
89-
if platform.system() == 'Darwin' and \
90-
tuple(map(int, platform.mac_ver()[0].split('.'))) >= (10, 9):
91-
flags.append(
92-
'-Wno-error=unused-command-line-argument-hard-error-in-future'
93-
)
82+
if platform.system() == 'Darwin':
83+
flags.extend([
84+
'-stdlib=libc++',
85+
'-mmacosx-version-min=10.7',
86+
])
87+
if tuple(map(int, platform.mac_ver()[0].split('.'))) >= (10, 9):
88+
flags.append(
89+
'-Wno-error=unused-command-line-argument-hard-error-in-future',
90+
)
9491
link_flags = ['-fPIC', '-lstdc++']
9592

9693
sass_extension = Extension(
@@ -99,6 +96,7 @@ def spawn(self, cmd):
9996
depends=libsass_headers,
10097
extra_compile_args=['-c', '-O2'] + flags,
10198
extra_link_args=link_flags,
99+
language='c++',
102100
)
103101

104102

0 commit comments

Comments
 (0)