+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2012 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
# module adding separate specification of opts to compiler
+module separate_options
import mmloader
import compiling
# only to order correctly redefs of compile_separate_module
import native_interface
+import ffi
redef class ToolContext
# all ops precised in .ops files
separate_options.add_option( opt_cc_include_paths )
end
- fun integrate_separate_options( options : String )
+ fun integrate_separate_options( options : String, mod : MMModule )
do
- for line in options.split do
+ for line in options.split_with('\n') do
line = line.strip_extension( "\n" )
separate_options.parse( line.split_with( ' ' ) )
- if separate_options.rest.length > 0 then
- warning( null, "module {self} args file has unknown args: {separate_options.rest.join(", ")}" )
+ var rest = new Array[String]
+ for s in separate_options.rest do if s.length > 0 then rest.add( s )
+ if rest.length > 0 then
+ error( null, "module \"{mod}\" args file has unknown args: {rest.join(", ")}" )
end
end
var option_content = option_file.read_all
option_file.close
- cprogram.program.tc.integrate_separate_options( option_content )
+ cprogram.program.tc.integrate_separate_options( option_content, self )
+ cprogram.program.tc.check_errors
end
end
end