sassc 2.0.1 → 2.1.0.pre1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (200) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.gitmodules +1 -1
  4. data/.travis.yml +7 -3
  5. data/CHANGELOG.md +3 -0
  6. data/CODE_OF_CONDUCT.md +1 -1
  7. data/README.md +1 -1
  8. data/Rakefile +23 -8
  9. data/ext/extconf.rb +39 -0
  10. data/ext/libsass/.gitignore +1 -0
  11. data/ext/libsass/GNUmakefile.am +23 -39
  12. data/ext/libsass/Makefile +56 -91
  13. data/ext/libsass/Makefile.conf +16 -2
  14. data/ext/libsass/configure.ac +8 -12
  15. data/ext/libsass/include/sass/base.h +1 -0
  16. data/ext/libsass/include/sass/context.h +1 -1
  17. data/ext/libsass/src/GNUmakefile.am +1 -5
  18. data/ext/libsass/src/ast.cpp +747 -2010
  19. data/ext/libsass/src/ast.hpp +239 -2383
  20. data/ext/libsass/src/{to_c.cpp → ast2c.cpp} +22 -16
  21. data/ext/libsass/src/ast2c.hpp +39 -0
  22. data/ext/libsass/src/ast_def_macros.hpp +62 -10
  23. data/ext/libsass/src/ast_fwd_decl.cpp +1 -0
  24. data/ext/libsass/src/ast_fwd_decl.hpp +43 -165
  25. data/ext/libsass/src/ast_sel_cmp.cpp +909 -0
  26. data/ext/libsass/src/ast_sel_unify.cpp +280 -0
  27. data/ext/libsass/src/ast_selectors.cpp +1475 -0
  28. data/ext/libsass/src/ast_selectors.hpp +568 -0
  29. data/ext/libsass/src/ast_supports.cpp +130 -0
  30. data/ext/libsass/src/ast_supports.hpp +121 -0
  31. data/ext/libsass/src/ast_values.cpp +967 -0
  32. data/ext/libsass/src/ast_values.hpp +489 -0
  33. data/ext/libsass/src/backtrace.cpp +4 -0
  34. data/ext/libsass/src/base64vlq.cpp +3 -0
  35. data/ext/libsass/src/bind.cpp +18 -17
  36. data/ext/libsass/src/bind.hpp +3 -1
  37. data/ext/libsass/src/c2ast.cpp +64 -0
  38. data/ext/libsass/src/c2ast.hpp +14 -0
  39. data/ext/libsass/src/cencode.c +2 -2
  40. data/ext/libsass/src/check_nesting.cpp +52 -56
  41. data/ext/libsass/src/check_nesting.hpp +35 -34
  42. data/ext/libsass/src/color_maps.cpp +156 -153
  43. data/ext/libsass/src/color_maps.hpp +152 -152
  44. data/ext/libsass/src/constants.cpp +15 -0
  45. data/ext/libsass/src/constants.hpp +13 -0
  46. data/ext/libsass/src/context.cpp +24 -14
  47. data/ext/libsass/src/context.hpp +6 -6
  48. data/ext/libsass/src/cssize.cpp +69 -71
  49. data/ext/libsass/src/cssize.hpp +50 -50
  50. data/ext/libsass/src/debugger.hpp +117 -110
  51. data/ext/libsass/src/emitter.cpp +13 -12
  52. data/ext/libsass/src/emitter.hpp +13 -9
  53. data/ext/libsass/src/environment.cpp +15 -1
  54. data/ext/libsass/src/environment.hpp +6 -0
  55. data/ext/libsass/src/error_handling.cpp +36 -59
  56. data/ext/libsass/src/error_handling.hpp +29 -16
  57. data/ext/libsass/src/eval.cpp +302 -323
  58. data/ext/libsass/src/eval.hpp +64 -55
  59. data/ext/libsass/src/expand.cpp +94 -88
  60. data/ext/libsass/src/expand.hpp +33 -37
  61. data/ext/libsass/src/extend.cpp +38 -36
  62. data/ext/libsass/src/extend.hpp +15 -15
  63. data/ext/libsass/src/file.cpp +34 -2
  64. data/ext/libsass/src/fn_colors.cpp +594 -0
  65. data/ext/libsass/src/fn_colors.hpp +85 -0
  66. data/ext/libsass/src/fn_lists.cpp +284 -0
  67. data/ext/libsass/src/fn_lists.hpp +34 -0
  68. data/ext/libsass/src/fn_maps.cpp +94 -0
  69. data/ext/libsass/src/fn_maps.hpp +30 -0
  70. data/ext/libsass/src/fn_miscs.cpp +256 -0
  71. data/ext/libsass/src/fn_miscs.hpp +40 -0
  72. data/ext/libsass/src/fn_numbers.cpp +220 -0
  73. data/ext/libsass/src/fn_numbers.hpp +45 -0
  74. data/ext/libsass/src/fn_selectors.cpp +235 -0
  75. data/ext/libsass/src/fn_selectors.hpp +35 -0
  76. data/ext/libsass/src/fn_strings.cpp +254 -0
  77. data/ext/libsass/src/fn_strings.hpp +34 -0
  78. data/ext/libsass/src/fn_utils.cpp +156 -0
  79. data/ext/libsass/src/fn_utils.hpp +56 -0
  80. data/ext/libsass/src/inspect.cpp +101 -152
  81. data/ext/libsass/src/inspect.hpp +69 -73
  82. data/ext/libsass/src/json.cpp +2 -2
  83. data/ext/libsass/src/lexer.cpp +6 -3
  84. data/ext/libsass/src/listize.cpp +9 -11
  85. data/ext/libsass/src/listize.hpp +11 -7
  86. data/ext/libsass/src/memory/SharedPtr.cpp +2 -83
  87. data/ext/libsass/src/memory/SharedPtr.hpp +127 -143
  88. data/ext/libsass/src/node.cpp +13 -10
  89. data/ext/libsass/src/node.hpp +3 -3
  90. data/ext/libsass/src/operation.hpp +184 -144
  91. data/ext/libsass/src/operators.cpp +43 -17
  92. data/ext/libsass/src/operators.hpp +5 -5
  93. data/ext/libsass/src/output.cpp +21 -18
  94. data/ext/libsass/src/output.hpp +14 -21
  95. data/ext/libsass/src/parser.cpp +215 -183
  96. data/ext/libsass/src/parser.hpp +28 -24
  97. data/ext/libsass/src/plugins.cpp +5 -1
  98. data/ext/libsass/src/position.cpp +3 -0
  99. data/ext/libsass/src/prelexer.cpp +9 -3
  100. data/ext/libsass/src/prelexer.hpp +9 -9
  101. data/ext/libsass/src/remove_placeholders.cpp +14 -11
  102. data/ext/libsass/src/remove_placeholders.hpp +8 -9
  103. data/ext/libsass/src/sass.cpp +9 -3
  104. data/ext/libsass/src/sass.hpp +12 -9
  105. data/ext/libsass/src/sass2scss.cpp +45 -14
  106. data/ext/libsass/src/sass_context.cpp +18 -15
  107. data/ext/libsass/src/sass_functions.cpp +6 -3
  108. data/ext/libsass/src/sass_functions.hpp +1 -1
  109. data/ext/libsass/src/sass_util.cpp +3 -0
  110. data/ext/libsass/src/sass_values.cpp +21 -13
  111. data/ext/libsass/src/source_map.cpp +5 -2
  112. data/ext/libsass/src/source_map.hpp +2 -2
  113. data/ext/libsass/src/subset_map.cpp +4 -1
  114. data/ext/libsass/src/to_value.cpp +23 -21
  115. data/ext/libsass/src/to_value.hpp +18 -22
  116. data/ext/libsass/src/units.cpp +4 -0
  117. data/ext/libsass/src/units.hpp +1 -0
  118. data/ext/libsass/src/utf8/checked.h +12 -10
  119. data/ext/libsass/src/utf8/core.h +3 -0
  120. data/ext/libsass/src/utf8_string.cpp +3 -0
  121. data/ext/libsass/src/util.cpp +67 -75
  122. data/ext/libsass/src/util.hpp +64 -19
  123. data/ext/libsass/src/util_string.cpp +75 -0
  124. data/ext/libsass/src/util_string.hpp +19 -0
  125. data/ext/libsass/src/values.cpp +22 -13
  126. data/ext/libsass/src/values.hpp +2 -2
  127. data/ext/libsass/win/libsass.targets +30 -4
  128. data/ext/libsass/win/libsass.vcxproj.filters +82 -4
  129. data/lib/sassc.rb +24 -0
  130. data/lib/sassc/engine.rb +2 -2
  131. data/lib/sassc/native.rb +8 -1
  132. data/lib/sassc/version.rb +1 -1
  133. data/sassc.gemspec +19 -11
  134. data/test/engine_test.rb +26 -1
  135. data/test/native_test.rb +1 -1
  136. metadata +66 -72
  137. data/ext/Rakefile +0 -3
  138. data/ext/libsass/.github/CONTRIBUTING.md +0 -65
  139. data/ext/libsass/.github/ISSUE_TEMPLATE.md +0 -54
  140. data/ext/libsass/.travis.yml +0 -64
  141. data/ext/libsass/Readme.md +0 -104
  142. data/ext/libsass/SECURITY.md +0 -10
  143. data/ext/libsass/appveyor.yml +0 -91
  144. data/ext/libsass/docs/README.md +0 -20
  145. data/ext/libsass/docs/api-context-example.md +0 -45
  146. data/ext/libsass/docs/api-context-internal.md +0 -163
  147. data/ext/libsass/docs/api-context.md +0 -295
  148. data/ext/libsass/docs/api-doc.md +0 -215
  149. data/ext/libsass/docs/api-function-example.md +0 -67
  150. data/ext/libsass/docs/api-function-internal.md +0 -8
  151. data/ext/libsass/docs/api-function.md +0 -74
  152. data/ext/libsass/docs/api-importer-example.md +0 -112
  153. data/ext/libsass/docs/api-importer-internal.md +0 -20
  154. data/ext/libsass/docs/api-importer.md +0 -86
  155. data/ext/libsass/docs/api-value-example.md +0 -55
  156. data/ext/libsass/docs/api-value-internal.md +0 -76
  157. data/ext/libsass/docs/api-value.md +0 -154
  158. data/ext/libsass/docs/build-on-darwin.md +0 -27
  159. data/ext/libsass/docs/build-on-gentoo.md +0 -55
  160. data/ext/libsass/docs/build-on-windows.md +0 -139
  161. data/ext/libsass/docs/build-shared-library.md +0 -35
  162. data/ext/libsass/docs/build-with-autotools.md +0 -78
  163. data/ext/libsass/docs/build-with-makefiles.md +0 -68
  164. data/ext/libsass/docs/build-with-mingw.md +0 -107
  165. data/ext/libsass/docs/build-with-visual-studio.md +0 -90
  166. data/ext/libsass/docs/build.md +0 -97
  167. data/ext/libsass/docs/compatibility-plan.md +0 -48
  168. data/ext/libsass/docs/contributing.md +0 -17
  169. data/ext/libsass/docs/custom-functions-internal.md +0 -122
  170. data/ext/libsass/docs/dev-ast-memory.md +0 -223
  171. data/ext/libsass/docs/implementations.md +0 -56
  172. data/ext/libsass/docs/plugins.md +0 -47
  173. data/ext/libsass/docs/setup-environment.md +0 -68
  174. data/ext/libsass/docs/source-map-internals.md +0 -51
  175. data/ext/libsass/docs/trace.md +0 -26
  176. data/ext/libsass/docs/triage.md +0 -17
  177. data/ext/libsass/docs/unicode.md +0 -39
  178. data/ext/libsass/extconf.rb +0 -6
  179. data/ext/libsass/script/bootstrap +0 -13
  180. data/ext/libsass/script/branding +0 -10
  181. data/ext/libsass/script/ci-build-libsass +0 -134
  182. data/ext/libsass/script/ci-build-plugin +0 -62
  183. data/ext/libsass/script/ci-install-compiler +0 -6
  184. data/ext/libsass/script/ci-install-deps +0 -20
  185. data/ext/libsass/script/ci-report-coverage +0 -42
  186. data/ext/libsass/script/spec +0 -5
  187. data/ext/libsass/script/tap-driver +0 -652
  188. data/ext/libsass/script/tap-runner +0 -1
  189. data/ext/libsass/script/test-leaks.pl +0 -103
  190. data/ext/libsass/src/functions.cpp +0 -2234
  191. data/ext/libsass/src/functions.hpp +0 -198
  192. data/ext/libsass/src/to_c.hpp +0 -39
  193. data/ext/libsass/test/test_node.cpp +0 -94
  194. data/ext/libsass/test/test_paths.cpp +0 -28
  195. data/ext/libsass/test/test_selector_difference.cpp +0 -25
  196. data/ext/libsass/test/test_specificity.cpp +0 -25
  197. data/ext/libsass/test/test_subset_map.cpp +0 -472
  198. data/ext/libsass/test/test_superselector.cpp +0 -69
  199. data/ext/libsass/test/test_unification.cpp +0 -31
  200. data/lib/tasks/libsass.rb +0 -33
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8e6cc1e890efb61b8b1a8f6668f8630f29c2e1b82a1f40a3b4565ce2dca663ae
4
- data.tar.gz: 966753477021819b719c5f214429f72fdb1011fe7c573e6211d26cbc038c51a8
3
+ metadata.gz: ff2772176f5c2bacf4de7b0834cbf272937b6116fa74fb17a17f29d9724b88f7
4
+ data.tar.gz: bb3876936e8d92ba560939f5e26b2c164d6c979dd346a4c49bebab568f3c8fde
5
5
  SHA512:
6
- metadata.gz: 65a6849e533cecd8634a556fe4f55fb21a6b8fe3763685a9fd10199dc900c4ae41f52a950301757842a513aab8e3da08901f7a25953db673f4f3c72baa57ed68
7
- data.tar.gz: 85c9a25f4f05d5d41fa7ace63b1917be6987adaf41e61c77f57f0336f81c164524b9b29ebe194e14afb745a5e89bea9f1bd1bac799a4cc3f7a8befd684d55b9b
6
+ metadata.gz: 22d29a7b4470fcaf270a7c0c9a8abda0ada4242ca1d62f2c6c096a3119b3178369c8b4a168395f2cdf80498630b6f7e6d21eaa32048db01fd7fa31d134292368
7
+ data.tar.gz: '080d0c1eb2a7545a7f4762963e2ca0b6edd8b271c0aeb8d238afc92a90d03f8db0f43e569fc22e9eb8b957447184b88f7df673157e8ad3d448ba6857494bf639'
data/.gitignore CHANGED
@@ -12,5 +12,6 @@
12
12
  *.so
13
13
  *.o
14
14
  *.a
15
+ *.gem
15
16
  mkmf.log
16
17
  vendor/bundle
@@ -1,3 +1,3 @@
1
1
  [submodule "ext/libsass"]
2
2
  path = ext/libsass
3
- url = git://github.com/sass/libsass.git
3
+ url = https://github.com/sass/libsass.git
@@ -3,8 +3,12 @@ language: ruby
3
3
  bundler_args: "--binstubs --standalone --without documentation --path ../bundle"
4
4
  script: "bundle exec rake test"
5
5
  rvm:
6
- - 2.3.7
7
- - 2.4.4
8
- - 2.5.1
6
+ - 2.0.0
7
+ - 2.1.10
8
+ - 2.2.10
9
+ - 2.3.8
10
+ - 2.4.6
11
+ - 2.5.5
12
+ - 2.6.3
9
13
  notifications:
10
14
  email: false
@@ -1,3 +1,6 @@
1
+ - **2.1.0.pre1**
2
+ - [Update Libsass to 3.6.0](https://github.com/sass/sassc-ruby/pull/96/files)
3
+ - [Support old Ruby versions](https://github.com/sass/sassc-ruby/pull/117/files)
1
4
  - **2.0.1**
2
5
  - [Relax FFI dependency](https://github.com/sass/sassc-ruby/pull/102)
3
6
  - **2.0.0**
@@ -7,4 +7,4 @@ fair place to play.
7
7
 
8
8
  [The full community guidelines can be found on the Sass website.][link]
9
9
 
10
- [link]: http://sass-lang.com/community-guidelines
10
+ [link]: https://sass-lang.com/community-guidelines
data/README.md CHANGED
@@ -6,7 +6,7 @@ This gem combines the speed of `libsass`, the [Sass C implementation](https://gi
6
6
 
7
7
  ### libsass Version
8
8
 
9
- [3.5.2](https://github.com/sass/libsass/releases/tag/3.5.2)
9
+ [3.6.0](https://github.com/sass/libsass/releases/3.6.0)
10
10
 
11
11
  ## Installation
12
12
 
data/Rakefile CHANGED
@@ -1,15 +1,30 @@
1
- begin
2
- require 'bundler/gem_tasks'
3
- rescue LoadError
4
- puts 'Cannot load bundler/gem_tasks'
5
- end
6
-
7
- require 'tasks/libsass'
1
+ require 'bundler/gem_tasks'
8
2
 
9
3
  task default: :test
10
4
 
5
+ require 'rake/extensiontask'
6
+ gem_spec = Gem::Specification.load("sassc.gemspec")
7
+ Rake::ExtensionTask.new('libsass', gem_spec) do |ext|
8
+ ext.name = 'libsass'
9
+ ext.ext_dir = 'ext'
10
+ ext.lib_dir = 'lib/sassc'
11
+ ext.cross_compile = true
12
+ ext.cross_platform = %w[x86-mingw32 x64-mingw32 x86-linux x86_64-linux]
13
+ ext.cross_compiling do |spec|
14
+ spec.files.reject! { |path| File.fnmatch?('ext/*', path) }
15
+ end
16
+ end
17
+
18
+ desc 'Compile all native gems via rake-compiler-dock (Docker)'
19
+ task 'gem:native' do
20
+ require 'rake_compiler_dock'
21
+ RakeCompilerDock.sh "bundle && gem i rake --no-document && "\
22
+ "rake cross native gem MAKE='nice make -j`nproc`' "\
23
+ "RUBY_CC_VERSION=2.6.0:2.5.0:2.4.0:2.3.0"
24
+ end
25
+
11
26
  desc "Run all tests"
12
- task test: 'libsass:compile' do
27
+ task test: 'compile:libsass' do
13
28
  $LOAD_PATH.unshift('lib', 'test')
14
29
  Dir.glob('./test/**/*_test.rb') { |f| require f }
15
30
  end
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ gem_root = File.expand_path('..', __dir__)
4
+ libsass_dir = File.join(gem_root, 'ext', 'libsass')
5
+
6
+ if !File.directory?(libsass_dir) ||
7
+ # '.', '..', and possibly '.git' from a failed checkout:
8
+ Dir.entries(libsass_dir).size <= 3
9
+ Dir.chdir(gem_root) { system('git submodule update --init') } or
10
+ fail 'Could not fetch libsass'
11
+ end
12
+
13
+ # Only needed because rake-compiler expects `.bundle` on macOS:
14
+ # https://github.com/rake-compiler/rake-compiler/blob/9f15620e7db145d11ae2fc4ba032367903f625e3/features/support/platform_extension_helpers.rb#L5
15
+ dl_ext = (RUBY_PLATFORM =~ /darwin/ ? 'bundle' : 'so')
16
+
17
+ File.write 'Makefile', <<-MAKEFILE
18
+ ifndef DESTDIR
19
+ LIBSASS_OUT = #{gem_root}/lib/sassc/libsass.#{dl_ext}
20
+ else
21
+ LIBSASS_OUT = $(DESTDIR)$(PREFIX)/libsass.#{dl_ext}
22
+ endif
23
+
24
+ SUB_DIR := #{libsass_dir}
25
+
26
+ libsass.#{dl_ext}:#{' clean' if ENV['CLEAN']}
27
+ $(MAKE) -C '$(SUB_DIR)' lib/libsass.so
28
+ cp '$(SUB_DIR)/lib/libsass.so' libsass.#{dl_ext}
29
+ strip -x libsass.#{dl_ext}
30
+
31
+ install: libsass.#{dl_ext}
32
+ cp libsass.#{dl_ext} '$(LIBSASS_OUT)'
33
+
34
+ clean:
35
+ $(MAKE) -C '$(SUB_DIR)' clean
36
+ rm -f '$(LIBSASS_OUT)' libsass.#{dl_ext}
37
+
38
+ .PHONY: clean install
39
+ MAKEFILE
@@ -2,6 +2,7 @@
2
2
 
3
3
  /sassc
4
4
  /sass-spec
5
+ /plugins/
5
6
 
6
7
  VERSION
7
8
  .DS_Store
@@ -18,70 +18,54 @@ AM_LDFLAGS = $(AM_COPT) $(AM_COVLDFLAGS)
18
18
  AM_CPPFLAGS += -I$(top_srcdir)
19
19
 
20
20
  RESOURCES =
21
+ AM_CXXFLAGS += -std=c++11
21
22
  if COMPILER_IS_MINGW32
22
23
  RESOURCES += res/libsass.rc
23
- AM_CXXFLAGS += -std=gnu++0x
24
- else
25
- AM_CXXFLAGS += -std=c++0x
26
24
  endif
27
25
 
26
+ TEST_EXTENSIONS = .rb
27
+
28
28
  if ENABLE_TESTS
29
29
 
30
- noinst_PROGRAMS = tester
30
+ SASS_SASSC_PATH ?= $(top_srcdir)/sassc
31
+ SASS_SPEC_PATH ?= $(top_srcdir)/sass-spec
31
32
 
33
+ noinst_PROGRAMS = tester
32
34
  tester_LDADD = src/libsass.la
33
- tester_SOURCES = $(SASS_SASSC_PATH)/sassc.c
34
- tester_VERSION ?= `cd "$(SASS_SASSC_PATH)" && ./version.sh`
35
- tester_CFLAGS = $(AM_CFLAGS) -DSASSC_VERSION="\"$(tester_VERSION)\""
36
- tester_CXXFLAGS = $(AM_CXXFLAGS) -DSASSC_VERSION="\"$(tester_VERSION)\""
37
35
  tester_LDFLAGS = $(AM_LDFLAGS)
36
+ nodist_tester_SOURCES = $(SASS_SASSC_PATH)/sassc.c
37
+ SASS_SASSC_VERSION ?= `cd "$(SASS_SASSC_PATH)" && ./version.sh`
38
+ tester_CFLAGS = $(AM_CFLAGS) -DSASSC_VERSION="\"$(SASS_SASSC_VERSION)\""
39
+ tester_CXXFLAGS = $(AM_CXXFLAGS) -DSASSC_VERSION="\"$(SASS_SASSC_VERSION)\""
38
40
 
39
41
  if ENABLE_COVERAGE
40
42
  nodist_EXTRA_tester_SOURCES = non-existent-file-to-force-CXX-linking.cxx
41
43
  endif
42
44
 
43
- SASS_SASSC_PATH ?= $(top_srcdir)/sassc
44
- SASS_SPEC_PATH ?= $(top_srcdir)/sass-spec
45
+ TESTS = $(SASS_SPEC_PATH)/sass-spec.rb
46
+ RB_LOG_COMPILER = ./script/tap-runner
47
+ AM_RB_LOG_FLAGS = $(RUBY)
45
48
 
46
- TESTS = \
47
- $(SASS_SPEC_PATH)/spec/basic \
48
- $(SASS_SPEC_PATH)/spec/css \
49
- $(SASS_SPEC_PATH)/spec/extend-tests \
50
- $(SASS_SPEC_PATH)/spec/extends \
51
- $(SASS_SPEC_PATH)/spec/libsass \
52
- $(SASS_SPEC_PATH)/spec/libsass-closed-issues \
53
- $(SASS_SPEC_PATH)/spec/maps \
54
- $(SASS_SPEC_PATH)/spec/misc \
55
- $(SASS_SPEC_PATH)/spec/regressions \
56
- $(SASS_SPEC_PATH)/spec/scss \
57
- $(SASS_SPEC_PATH)/spec/scss-tests \
58
- $(SASS_SPEC_PATH)/spec/types
59
-
60
- SASS_TEST_FLAGS = -V 3.5 --impl libsass
61
- LOG_DRIVER = env AM_TAP_AWK='$(AWK)' $(SHELL) ./script/tap-driver
62
- AM_LOG_FLAGS = -c ./tester $(LOG_FLAGS)
63
- if USE_TAP
64
- AM_LOG_FLAGS += -t
65
- SASS_TEST_FLAGS += -t | tapout
66
- LOG_COMPILER = ./script/tap-runner $(RUBY) $(SASS_SPEC_PATH)/sass-spec.rb
67
- else
68
- LOG_COMPILER = $(RUBY) $(SASS_SPEC_PATH)/sass-spec.rb
69
- endif
49
+ SASS_TEST_FLAGS = --impl libsass
50
+ SASS_TEST_FLAGS += -r $(SASS_SPEC_PATH)
51
+ SASS_TEST_FLAGS += -c $(top_srcdir)/tester$(EXEEXT)
52
+ AM_TESTS_ENVIRONMENT = TEST_FLAGS='$(SASS_TEST_FLAGS)'
70
53
 
71
54
  SASS_TESTER = $(RUBY) $(SASS_SPEC_PATH)/sass-spec.rb
72
- SASS_TESTER += -c $(top_srcdir)/tester$(EXEEXT)
73
55
 
74
56
  test:
75
- $(SASS_TESTER) $(LOG_FLAGS) $(SASS_SPEC_PATH) $(SASS_TEST_FLAGS)
57
+ $(SASS_TESTER) $(SASS_TEST_FLAGS)
76
58
 
77
59
  test_build:
78
- $(SASS_TESTER) $(LOG_FLAGS) $(SASS_SPEC_PATH) $(SASS_TEST_FLAGS)
60
+ $(SASS_TESTER) $(SASS_TEST_FLAGS)
79
61
 
80
62
  test_full:
81
- $(SASS_TESTER) --run-todo $(LOG_FLAGS) $(SASS_SPEC_PATH) $(SASS_TEST_FLAGS)
63
+ $(SASS_TESTER) --run-todo $(SASS_TEST_FLAGS)
82
64
 
83
65
  test_probe:
84
- $(SASS_TESTER) --probe-todo $(LOG_FLAGS) $(SASS_SPEC_PATH) $(SASS_TEST_FLAGS)
66
+ $(SASS_TESTER) --probe-todo $(SASS_TEST_FLAGS)
67
+
68
+ .PHONY: test test_build test_full test_probe
85
69
 
86
70
  endif
87
71
 
@@ -1,6 +1,6 @@
1
1
  OS ?= $(shell uname -s)
2
- CC ?= gcc
3
- CXX ?= g++
2
+ CC ?= cc
3
+ CXX ?= c++
4
4
  RM ?= rm -f
5
5
  CP ?= cp -a
6
6
  MKDIR ?= mkdir
@@ -15,7 +15,7 @@ INSTALL ?= install
15
15
  CFLAGS ?= -Wall
16
16
  CXXFLAGS ?= -Wall
17
17
  LDFLAGS ?= -Wall
18
- ifeq "x$(COVERAGE)" "x"
18
+ ifndef COVERAGE
19
19
  CFLAGS += -O2
20
20
  CXXFLAGS += -O2
21
21
  LDFLAGS += -O2
@@ -24,66 +24,58 @@ else
24
24
  CXXFLAGS += -O1 -fno-omit-frame-pointer
25
25
  LDFLAGS += -O1 -fno-omit-frame-pointer
26
26
  endif
27
- LDFLAGS += -Wl,-undefined,error
28
- CAT ?= $(if $(filter $(OS),Windows_NT),type,cat)
27
+ CAT ?= $(if $(filter $(OS),Windows_NT),type,cat)
29
28
 
30
29
  ifneq (,$(findstring /cygdrive/,$(PATH)))
31
30
  UNAME := Cygwin
32
31
  else
33
- ifneq (,$(findstring Windows_NT,$(OS)))
34
- UNAME := Windows
35
- else
36
- ifneq (,$(findstring mingw32,$(MAKE)))
37
- UNAME := Windows
38
- else
39
- ifneq (,$(findstring MINGW32,$(shell uname -s)))
40
- UNAME = Windows
41
- else
42
- UNAME := $(shell uname -s)
43
- endif
44
- endif
45
- endif
32
+ ifneq (,$(findstring Windows_NT,$(OS)))
33
+ UNAME := Windows
34
+ else
35
+ ifneq (,$(findstring mingw32,$(MAKE)))
36
+ UNAME := Windows
37
+ else
38
+ ifneq (,$(findstring MINGW32,$(shell uname -s)))
39
+ UNAME := Windows
40
+ else
41
+ UNAME := $(shell uname -s)
42
+ endif
43
+ endif
46
44
  endif
47
-
48
- ifeq ($(SASS_LIBSASS_PATH),)
49
- SASS_LIBSASS_PATH = $(abspath $(CURDIR))
50
45
  endif
51
46
 
52
- ifeq ($(LIBSASS_VERSION),)
47
+ ifndef LIBSASS_VERSION
53
48
  ifneq ($(wildcard ./.git/ ),)
54
49
  LIBSASS_VERSION ?= $(shell git describe --abbrev=4 --dirty --always --tags)
55
50
  endif
56
- endif
57
-
58
- ifeq ($(LIBSASS_VERSION),)
59
51
  ifneq ($(wildcard VERSION),)
60
52
  LIBSASS_VERSION ?= $(shell $(CAT) VERSION)
61
53
  endif
62
54
  endif
63
-
64
- ifneq ($(LIBSASS_VERSION),)
55
+ ifdef LIBSASS_VERSION
65
56
  CFLAGS += -DLIBSASS_VERSION="\"$(LIBSASS_VERSION)\""
66
57
  CXXFLAGS += -DLIBSASS_VERSION="\"$(LIBSASS_VERSION)\""
67
58
  endif
68
59
 
69
- # enable mandatory flag
60
+ CXXFLAGS += -std=c++11
61
+ LDFLAGS += -std=c++11
62
+
70
63
  ifeq (Windows,$(UNAME))
71
64
  ifneq ($(BUILD),shared)
72
65
  STATIC_ALL ?= 1
73
66
  endif
74
67
  STATIC_LIBGCC ?= 1
75
68
  STATIC_LIBSTDCPP ?= 1
76
- CXXFLAGS += -std=gnu++0x
77
- LDFLAGS += -std=gnu++0x
78
69
  else
79
70
  STATIC_ALL ?= 0
80
71
  STATIC_LIBGCC ?= 0
81
72
  STATIC_LIBSTDCPP ?= 0
82
- CXXFLAGS += -std=c++0x
83
- LDFLAGS += -std=c++0x
84
73
  endif
85
74
 
86
- ifneq ($(SASS_LIBSASS_PATH),)
75
+ ifndef SASS_LIBSASS_PATH
76
+ SASS_LIBSASS_PATH = $(abspath $(CURDIR))
77
+ endif
78
+ ifdef SASS_LIBSASS_PATH
87
79
  CFLAGS += -I $(SASS_LIBSASS_PATH)/include
88
80
  CXXFLAGS += -I $(SASS_LIBSASS_PATH)/include
89
81
  else
@@ -92,18 +84,11 @@ else
92
84
  CXXFLAGS += -I include
93
85
  endif
94
86
 
95
- ifneq ($(EXTRA_CFLAGS),)
96
- CFLAGS += $(EXTRA_CFLAGS)
97
- endif
98
- ifneq ($(EXTRA_CXXFLAGS),)
99
- CXXFLAGS += $(EXTRA_CXXFLAGS)
100
- endif
101
- ifneq ($(EXTRA_LDFLAGS),)
102
- LDFLAGS += $(EXTRA_LDFLAGS)
103
- endif
87
+ CFLAGS += $(EXTRA_CFLAGS)
88
+ CXXFLAGS += $(EXTRA_CXXFLAGS)
89
+ LDFLAGS += $(EXTRA_LDFLAGS)
104
90
 
105
91
  LDLIBS = -lm
106
-
107
92
  ifneq ($(BUILD),shared)
108
93
  LDLIBS += -lstdc++
109
94
  endif
@@ -143,7 +128,7 @@ ifeq ($(DEBUG),1)
143
128
  BUILD := debug-$(BUILD)
144
129
  endif
145
130
 
146
- ifeq (,$(TRAVIS_BUILD_DIR))
131
+ ifndef TRAVIS_BUILD_DIR
147
132
  ifeq ($(OS),SunOS)
148
133
  PREFIX ?= /opt/local
149
134
  else
@@ -153,54 +138,36 @@ else
153
138
  PREFIX ?= $(TRAVIS_BUILD_DIR)
154
139
  endif
155
140
 
156
-
157
141
  SASS_SASSC_PATH ?= sassc
158
142
  SASS_SPEC_PATH ?= sass-spec
159
143
  SASS_SPEC_SPEC_DIR ?= spec
160
144
  SASSC_BIN = $(SASS_SASSC_PATH)/bin/sassc
161
145
  RUBY_BIN = ruby
162
146
 
147
+ RESOURCES =
148
+ STATICLIB = lib/libsass.a
149
+ SHAREDLIB = lib/libsass.so
163
150
  LIB_STATIC = $(SASS_LIBSASS_PATH)/lib/libsass.a
164
151
  LIB_SHARED = $(SASS_LIBSASS_PATH)/lib/libsass.so
165
152
 
166
- ifeq (Windows,$(UNAME))
167
- ifeq (shared,$(BUILD))
168
- CFLAGS += -D ADD_EXPORTS
169
- CXXFLAGS += -D ADD_EXPORTS
170
- LIB_SHARED = $(SASS_LIBSASS_PATH)/lib/libsass.dll
171
- endif
172
- else
173
- ifneq (Cygwin,$(UNAME))
174
- CFLAGS += -fPIC
175
- CXXFLAGS += -fPIC
176
- LDFLAGS += -fPIC
177
- endif
178
- endif
179
-
180
153
  ifeq (Windows,$(UNAME))
181
154
  SASSC_BIN = $(SASS_SASSC_PATH)/bin/sassc.exe
182
- endif
183
-
184
- include Makefile.conf
185
-
186
- RESOURCES =
187
- STATICLIB = lib/libsass.a
188
- SHAREDLIB = lib/libsass.so
189
- ifeq (Windows,$(UNAME))
190
155
  RESOURCES += res/resource.rc
191
156
  SHAREDLIB = lib/libsass.dll
192
157
  ifeq (shared,$(BUILD))
193
158
  CFLAGS += -D ADD_EXPORTS
194
159
  CXXFLAGS += -D ADD_EXPORTS
160
+ LIB_SHARED = $(SASS_LIBSASS_PATH)/lib/libsass.dll
195
161
  endif
196
162
  else
197
- ifneq (Cygwin,$(UNAME))
198
- CFLAGS += -fPIC
199
- CXXFLAGS += -fPIC
200
- LDFLAGS += -fPIC
201
- endif
163
+ ifneq (Cygwin,$(UNAME))
164
+ CFLAGS += -fPIC
165
+ CXXFLAGS += -fPIC
166
+ LDFLAGS += -fPIC
167
+ endif
202
168
  endif
203
169
 
170
+ include Makefile.conf
204
171
  OBJECTS = $(addprefix src/,$(SOURCES:.cpp=.o))
205
172
  COBJECTS = $(addprefix src/,$(CSOURCES:.c=.o))
206
173
  RCOBJECTS = $(RESOURCES:.rc=.o)
@@ -230,13 +197,13 @@ debug-shared: shared
230
197
  lib:
231
198
  $(MKDIR) lib
232
199
 
233
- lib/libsass.a: lib $(COBJECTS) $(OBJECTS)
200
+ lib/libsass.a: $(COBJECTS) $(OBJECTS) | lib
234
201
  $(AR) rcvs $@ $(COBJECTS) $(OBJECTS)
235
202
 
236
- lib/libsass.so: lib $(COBJECTS) $(OBJECTS)
203
+ lib/libsass.so: $(COBJECTS) $(OBJECTS) | lib
237
204
  $(CXX) -shared $(LDFLAGS) -o $@ $(COBJECTS) $(OBJECTS) $(LDLIBS)
238
205
 
239
- lib/libsass.dll: lib $(COBJECTS) $(OBJECTS) $(RCOBJECTS)
206
+ lib/libsass.dll: $(COBJECTS) $(OBJECTS) $(RCOBJECTS) | lib
240
207
  $(CXX) -shared $(LDFLAGS) -o $@ $(COBJECTS) $(OBJECTS) $(RCOBJECTS) $(LDLIBS) -s -Wl,--subsystem,windows,--out-implib,lib/libsass.a
241
208
 
242
209
  %.o: %.c
@@ -259,18 +226,17 @@ shared: $(SHAREDLIB)
259
226
  $(DESTDIR)$(PREFIX):
260
227
  $(MKDIR) $(DESTDIR)$(PREFIX)
261
228
 
262
- $(DESTDIR)$(PREFIX)/lib: $(DESTDIR)$(PREFIX)
229
+ $(DESTDIR)$(PREFIX)/lib: | $(DESTDIR)$(PREFIX)
263
230
  $(MKDIR) $(DESTDIR)$(PREFIX)/lib
264
231
 
265
- $(DESTDIR)$(PREFIX)/include: $(DESTDIR)$(PREFIX)
232
+ $(DESTDIR)$(PREFIX)/include: | $(DESTDIR)$(PREFIX)
266
233
  $(MKDIR) $(DESTDIR)$(PREFIX)/include
267
234
 
268
- $(DESTDIR)$(PREFIX)/include/sass: $(DESTDIR)$(PREFIX)/include
235
+ $(DESTDIR)$(PREFIX)/include/sass: | $(DESTDIR)$(PREFIX)/include
269
236
  $(MKDIR) $(DESTDIR)$(PREFIX)/include/sass
270
237
 
271
238
  $(DESTDIR)$(PREFIX)/include/%.h: include/%.h \
272
- $(DESTDIR)$(PREFIX)/include \
273
- $(DESTDIR)$(PREFIX)/include/sass
239
+ | $(DESTDIR)$(PREFIX)/include/sass
274
240
  $(INSTALL) -v -m0644 "$<" "$@"
275
241
 
276
242
  install-headers: $(DESTDIR)$(PREFIX)/include/sass.h \
@@ -282,15 +248,15 @@ install-headers: $(DESTDIR)$(PREFIX)/include/sass.h \
282
248
  $(DESTDIR)$(PREFIX)/include/sass/functions.h
283
249
 
284
250
  $(DESTDIR)$(PREFIX)/lib/%.a: lib/%.a \
285
- $(DESTDIR)$(PREFIX)/lib
251
+ | $(DESTDIR)$(PREFIX)/lib
286
252
  @$(INSTALL) -v -m0755 "$<" "$@"
287
253
 
288
254
  $(DESTDIR)$(PREFIX)/lib/%.so: lib/%.so \
289
- $(DESTDIR)$(PREFIX)/lib
255
+ | $(DESTDIR)$(PREFIX)/lib
290
256
  @$(INSTALL) -v -m0755 "$<" "$@"
291
257
 
292
258
  $(DESTDIR)$(PREFIX)/lib/%.dll: lib/%.dll \
293
- $(DESTDIR)$(PREFIX)/lib
259
+ | $(DESTDIR)$(PREFIX)/lib
294
260
  @$(INSTALL) -v -m0755 "$<" "$@"
295
261
 
296
262
  install-static: $(DESTDIR)$(PREFIX)/lib/libsass.a
@@ -305,22 +271,20 @@ sassc: $(SASSC_BIN)
305
271
  $(SASSC_BIN) -v
306
272
 
307
273
  version: $(SASSC_BIN)
308
- $(SASSC_BIN) -h
309
274
  $(SASSC_BIN) -v
310
275
 
311
- test: $(SASSC_BIN)
312
- $(RUBY_BIN) $(SASS_SPEC_PATH)/sass-spec.rb -V 3.5 -c $(SASSC_BIN) --impl libsass $(LOG_FLAGS) $(SASS_SPEC_PATH)/$(SASS_SPEC_SPEC_DIR)
276
+ test: test_build
313
277
 
314
278
  test_build: $(SASSC_BIN)
315
- $(RUBY_BIN) $(SASS_SPEC_PATH)/sass-spec.rb -V 3.5 -c $(SASSC_BIN) --impl libsass $(LOG_FLAGS) $(SASS_SPEC_PATH)/$(SASS_SPEC_SPEC_DIR)
279
+ $(RUBY_BIN) $(SASS_SPEC_PATH)/sass-spec.rb -c $(SASSC_BIN) --impl libsass $(LOG_FLAGS) $(SASS_SPEC_PATH)/$(SASS_SPEC_SPEC_DIR)
316
280
 
317
281
  test_full: $(SASSC_BIN)
318
- $(RUBY_BIN) $(SASS_SPEC_PATH)/sass-spec.rb -V 3.5 -c $(SASSC_BIN) --impl libsass --run-todo $(LOG_FLAGS) $(SASS_SPEC_PATH)/$(SASS_SPEC_SPEC_DIR)
282
+ $(RUBY_BIN) $(SASS_SPEC_PATH)/sass-spec.rb -c $(SASSC_BIN) --impl libsass --run-todo $(LOG_FLAGS) $(SASS_SPEC_PATH)/$(SASS_SPEC_SPEC_DIR)
319
283
 
320
284
  test_probe: $(SASSC_BIN)
321
- $(RUBY_BIN) $(SASS_SPEC_PATH)/sass-spec.rb -V 3.5 -c $(SASSC_BIN) --impl libsass --probe-todo $(LOG_FLAGS) $(SASS_SPEC_PATH)/$(SASS_SPEC_SPEC_DIR)
285
+ $(RUBY_BIN) $(SASS_SPEC_PATH)/sass-spec.rb -c $(SASSC_BIN) --impl libsass --probe-todo $(LOG_FLAGS) $(SASS_SPEC_PATH)/$(SASS_SPEC_SPEC_DIR)
322
286
 
323
- clean-objects: lib
287
+ clean-objects: | lib
324
288
  -$(RM) lib/*.a lib/*.so lib/*.dll lib/*.la
325
289
  -$(RMDIR) lib
326
290
  clean: clean-objects
@@ -347,5 +311,6 @@ lib-opts-shared:
347
311
  debug debug-static debug-shared \
348
312
  install install-static install-shared \
349
313
  lib-opts lib-opts-shared lib-opts-static \
350
- lib-file lib-file-shared lib-file-static
314
+ lib-file lib-file-shared lib-file-static \
315
+ test test_build test_full test_probe
351
316
  .DELETE_ON_ERROR: