flgen 0.21.0 → 0.22.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fe67e7c60ca35355577e56501c46a5745fec3209091ae08adec482291480bfc2
4
- data.tar.gz: b1b22bab5e3221f0b065d56cd280f6511430f7180954242e0adfc5e1d5199cb7
3
+ metadata.gz: 33b0814c2fcfc9046509b233599f28062043c2caae0ff1cdbcfcce692b28f729
4
+ data.tar.gz: 601b18c81b39f94ec8d0d71c19494c91f399bfecd89ce9f63928acfe33a4c1c3
5
5
  SHA512:
6
- metadata.gz: a736ba945d947a72ddeccf2c1f09f0f75ed27aa9ec79fc59c81518619bd004094a96dd6911185f861371abeb8c25abc3ebe3b7fae4a1695b40c221e08b47b6c3
7
- data.tar.gz: b4666bb3afdd53adf29f6a8f6c63d02e660e9c0558b9a5681bf2e33196360eeead5ca6d54a863918915fb3facd4bc57999c6b89c9bdb87d7d3a787c18d5eb4a7
6
+ metadata.gz: a8ea63bd6b701bf74a700790073955bdfce440da096e31026c47d703bf5c37111c600e3334aa7d0415c7e66579a461068a5676d3eb50d7ada10870d1503d4a20
7
+ data.tar.gz: dfa623a93062f38fccbb9692bf7aadc7837e0339bb1d8dc7994034addaf18d6d39b7143f8b9fbf6198307dad3c12335e6ce0162625141beba3640dd7e1471f28
data/README.md CHANGED
@@ -45,6 +45,8 @@ FLGen prives APIs listed below to describe your filelists.
45
45
  * Return `true` if the given directory exists.
46
46
  * `define_macro(name, value = nil)`
47
47
  * Define a text macro.
48
+ * `undefine_macro(name)`
49
+ * Undefine the given macro.
48
50
  * `macro?(name)`/`macro_defined?(name)`
49
51
  * Return `true` if the given macro is defined.
50
52
  * `macro(name)`
data/lib/flgen/context.rb CHANGED
@@ -39,6 +39,10 @@ module FLGen
39
39
  add_macro_definition(k, v, false)
40
40
  end
41
41
 
42
+ def undefine_macro(macro)
43
+ remove_macro(macro)
44
+ end
45
+
42
46
  def macros
43
47
  @macros ||= {}
44
48
  end
@@ -111,11 +115,19 @@ module FLGen
111
115
  end
112
116
 
113
117
  def add_macro_argument(name, value)
114
- arguments
115
- .delete_if { |argument| argument.type == :define && argument.name == name }
118
+ arguments.delete_if { |arg| macro_definition?(arg, name) }
116
119
  add_compile_argument(Arguments::Define.new(name, value))
117
120
  end
118
121
 
122
+ def remove_macro(macro)
123
+ name = macro.to_sym
124
+ arguments.reject! { |arg| macro_definition?(arg, name) } && macros.delete(name)
125
+ end
126
+
127
+ def macro_definition?(arg, name)
128
+ arg.type == :define && arg.name == name
129
+ end
130
+
119
131
  def directory_already_added?(type, path)
120
132
  arguments
121
133
  .any? { |argument| argument.type == type && argument.path == path }
@@ -49,6 +49,10 @@ module FLGen
49
49
  @context.define_macro(macro, value)
50
50
  end
51
51
 
52
+ def undefine_macro(macro)
53
+ @context.undefine_macro(macro)
54
+ end
55
+
52
56
  def macro?(macro)
53
57
  @context.macros.key?(macro.to_sym)
54
58
  end
@@ -126,9 +130,7 @@ module FLGen
126
130
  end
127
131
 
128
132
  def raise_no_entry_error(path, location, raise_error)
129
- return unless raise_error
130
-
131
- raise NoEntryError.new(path, location)
133
+ raise_error && (raise NoEntryError.new(path, location))
132
134
  end
133
135
 
134
136
  def glob_files(patterns, from, method_name, location)
@@ -6,6 +6,8 @@ formality:
6
6
  - SYNTHESIS
7
7
  xcelium:
8
8
  - XCELIUM
9
+ dsim:
10
+ - DSIM
9
11
  vivado:
10
12
  - SYNTHESIS
11
13
  vivado_simulator:
data/lib/flgen/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module FLGen
4
- VERSION = '0.21.0'
4
+ VERSION = '0.22.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flgen
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.21.0
4
+ version: 0.22.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Taichi Ishitani
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-04-25 00:00:00.000000000 Z
11
+ date: 2024-06-04 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Filelist generator
14
14
  email: