module Docs class Gcc < Gnu self.name = 'GCC' self.slug = 'gcc' self.links = { home: 'https://gcc.gnu.org/' } html_filters.push 'gcc/clean_html', 'title' options[:root_title] = false options[:title] = false options[:replace_paths] = { 'aarch64_002dfeature_002dmodifiers.html' => 'AArch64-Options.html', 'AssemblerTemplate.html' => 'Extended-Asm.html', 'AVR-Named-Address-Spaces.html' => 'Named-Address-Spaces.html', 'AVR-Variable-Attributes.html' => 'Variable-Attributes.html', 'Clobbers.html' => 'Extended-Asm.html', 'dashMF.html' => 'Preprocessor-Options.html', 'GotoLabels.html' => 'Extended-Asm.html', 'InputOperands.html' => 'Extended-Asm.html', 'OutputOperands.html' => 'Extended-Asm.html', 'PowerPC-Type-Attributes.html' => 'Type-Attributes.html', 'SPU-Type-Attributes.html' => 'Type-Attributes.html', 'Type_002dpunning.html' => 'Optimize-Options.html', 'Volatile.html' => 'Extended-Asm.html', 'Wtrigraphs.html' => 'Preprocessor-Options.html', 'x86-Type-Attributes.html' => 'Type-Attributes.html', 'x86-Variable-Attributes.html' => 'Variable-Attributes.html', 'x86floatingpointasmoperands.html' => 'Extended-Asm.html', 'x86Operandmodifiers.html' => 'Extended-Asm.html', 'Example-of-asm-with-clobbered-asm-reg.html' => 'Extended-Asm.html', 'Extended-asm-with-goto.html' => 'Extended-Asm.html', 'fdollars_002din_002didentifiers.html' => 'Preprocessor-Options.html', 'i386-Type-Attributes.html' => 'Variable-Attributes.html', 'i386-Variable-Attributes.html' => 'Variable-Attributes.html' } CPP_PATHS = { 'dashMF.html' => 'Invocation.html', 'fdollars_002din_002didentifiers.html' => 'Invocation.html', 'Identifier-characters.html' => 'Implementation_002ddefined-behavior.html', 'trigraphs.html' => 'Initial-processing.html', 'Wtrigraphs.html' => 'Invocation.html' } version '14' do self.release = '14.2.0' self.base_url = "https://gcc.gnu.org/onlinedocs/gcc-#{release}/gcc/" end version '14 CPP' do self.release = '14.2.0' self.base_url = "https://gcc.gnu.org/onlinedocs/gcc-#{release}/cpp/" end version '13' do self.release = '13.3.0' self.base_url = "https://gcc.gnu.org/onlinedocs/gcc-#{release}/gcc/" end version '13 CPP' do self.release = '13.3.0' self.base_url = "https://gcc.gnu.org/onlinedocs/gcc-#{release}/cpp/" end version '12' do self.release = '12.2.0' self.base_url = "https://gcc.gnu.org/onlinedocs/gcc-#{release}/gcc/" end version '12 CPP' do self.release = '12.1.0' self.base_url = "https://gcc.gnu.org/onlinedocs/gcc-#{release}/cpp/" end version '11' do self.release = '11.4.0' self.base_url = "https://gcc.gnu.org/onlinedocs/gcc-#{release}/gcc/" end version '11 CPP' do self.release = '11.4.0' self.base_url = "https://gcc.gnu.org/onlinedocs/gcc-#{release}/cpp/" end version '10' do self.release = '10.5.0' self.base_url = "https://gcc.gnu.org/onlinedocs/gcc-#{release}/gcc/" end version '10 CPP' do self.release = '10.5.0' self.base_url = "https://gcc.gnu.org/onlinedocs/gcc-#{release}/cpp/" end version '9' do self.release = '9.5.0' self.base_url = "https://gcc.gnu.org/onlinedocs/gcc-#{release}/gcc/" end version '9 CPP' do self.release = '9.5.0' self.base_url = "https://gcc.gnu.org/onlinedocs/gcc-#{release}/cpp/" options[:replace_paths] = CPP_PATHS end version '8' do self.release = '8.5.0' self.base_url = "https://gcc.gnu.org/onlinedocs/gcc-#{release}/gcc/" end version '8 CPP' do self.release = '8.5.0' self.base_url = "https://gcc.gnu.org/onlinedocs/gcc-#{release}/cpp/" options[:replace_paths] = CPP_PATHS end version '7' do self.release = '7.5.0' self.base_url = "https://gcc.gnu.org/onlinedocs/gcc-#{release}/gcc/" end version '7 CPP' do self.release = '7.5.0' self.base_url = "https://gcc.gnu.org/onlinedocs/gcc-#{release}/cpp/" options[:replace_paths] = CPP_PATHS end version '6' do self.release = '6.5.0' self.base_url = "https://gcc.gnu.org/onlinedocs/gcc-#{release}/gcc/" options[:root_title] = 'Using the GNU Compiler Collection (GCC)' end version '6 CPP' do self.release = '6.5.0' self.base_url = "https://gcc.gnu.org/onlinedocs/gcc-#{release}/cpp/" options[:replace_paths] = CPP_PATHS end version '5' do self.release = '5.5.0' self.base_url = "https://gcc.gnu.org/onlinedocs/gcc-#{release}/gcc/" options[:root_title] = 'Using the GNU Compiler Collection (GCC)' end version '5 CPP' do self.release = '5.5.0' self.base_url = "https://gcc.gnu.org/onlinedocs/gcc-#{release}/cpp/" options[:replace_paths] = CPP_PATHS end version '4' do self.release = '4.9.4' self.base_url = "https://gcc.gnu.org/onlinedocs/gcc-#{release}/gcc/" options[:root_title] = 'Using the GNU Compiler Collection (GCC)' end version '4 CPP' do self.release = '4.9.4' self.base_url = "https://gcc.gnu.org/onlinedocs/gcc-#{release}/cpp/" options[:replace_paths] = CPP_PATHS end def get_latest_version(opts) doc = fetch_doc('https://gcc.gnu.org/onlinedocs/', opts) label = doc.at_css('details > ul > li > a')['href'].strip label.scan(/([0-9.]+)/)[2..-1][0][0] end end end