You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					89 lines
				
				2.6 KiB
			
		
		
			
		
	
	
					89 lines
				
				2.6 KiB
			| 
								 
											6 years ago
										 
									 | 
							
								sphinx = find_program('sphinx-build', required: true)
							 | 
						||
| 
								 | 
							
								doxygen = find_program('doxygen', required: true)
							 | 
						||
| 
								 | 
							
								breathe = find_program('breathe-apidoc', required: true)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								sphinx_c = run_command(sphinx, '--version')
							 | 
						||
| 
								 | 
							
								breathe_c = run_command(breathe, '--version')
							 | 
						||
| 
								 | 
							
								doxygen_c = run_command(doxygen, '--version')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								sphinx_v = sphinx_c.stdout().split(' ')[1].strip()
							 | 
						||
| 
								 | 
							
								breathe_v = breathe_c.stdout().split(' ')[2].strip()
							 | 
						||
| 
								 | 
							
								doxygen_v = doxygen_c.stdout().strip()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if sphinx_v.version_compare('< 2.1.0')
							 | 
						||
| 
								 | 
							
									error('Use at least sphinx version 2.1.0, found ' + sphinx_v)
							 | 
						||
| 
								 | 
							
								endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if breathe_v.version_compare('< 4.11')
							 | 
						||
| 
								 | 
							
									error('Use at least breathe version 4.11, found ' + breathe_v)
							 | 
						||
| 
								 | 
							
								endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if doxygen_v.version_compare('< 1.8')
							 | 
						||
| 
								 | 
							
									error('Use at least doxygen version 1.8, found ' + doxygen_v)
							 | 
						||
| 
								 | 
							
								endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								doxygen_database = meson.current_build_dir() + '/doxygen_doc'
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# modify the sphinx configuration and the breathe doxygen XML database
							 | 
						||
| 
								 | 
							
								# to point where its being generated by doxygen
							 | 
						||
| 
								 | 
							
								sphinx_conf_data = configuration_data()
							 | 
						||
| 
								 | 
							
								sphinx_conf_data.set('BUILD_ROOT', doxygen_database)
							 | 
						||
| 
								 | 
							
								sphinx_conf_data.set('VERSION', meson.project_version())
							 | 
						||
| 
								 | 
							
								sphinx_conf = configure_file(
							 | 
						||
| 
								 | 
							
										input: 'conf.py.in',
							 | 
						||
| 
								 | 
							
										output: 'conf.py',
							 | 
						||
| 
								 | 
							
										configuration: sphinx_conf_data
							 | 
						||
| 
								 | 
							
								)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								doxy_conf_data = configuration_data()
							 | 
						||
| 
								 | 
							
								doxy_conf_data.set('SRC_ROOT', meson.source_root())
							 | 
						||
| 
								 | 
							
								doxy_conf_data.set('OUTPUT_DIR', doxygen_database)
							 | 
						||
| 
								 | 
							
								doxygen_conf_weston = configure_file(
							 | 
						||
| 
								 | 
							
										input: 'doxygen.ini.in',
							 | 
						||
| 
								 | 
							
										output: 'doxygen.ini',
							 | 
						||
| 
								 | 
							
										configuration: doxy_conf_data
							 | 
						||
| 
								 | 
							
								)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								script_data = configuration_data()
							 | 
						||
| 
								 | 
							
								script_data.set('SRCDIR', meson.current_build_dir())
							 | 
						||
| 
								 | 
							
								script_data.set('OUTDIR', meson.current_build_dir() + '/doc')
							 | 
						||
| 
								 | 
							
								script_data.set('DOXYGEN_CONF', meson.current_build_dir() + '/doxygen.ini')
							 | 
						||
| 
								 | 
							
								script_data.set('DOXYGEN_CMD', doxygen.path())
							 | 
						||
| 
								 | 
							
								script_data.set('SPHINX_CMD', sphinx.path())
							 | 
						||
| 
								 | 
							
								script_doxy_sphinx = configure_file(
							 | 
						||
| 
								 | 
							
									input: 'run_doxygen_sphinx.sh.in',
							 | 
						||
| 
								 | 
							
									output: 'run_doxygen_sphinx.sh',
							 | 
						||
| 
								 | 
							
									configuration: script_data
							 | 
						||
| 
								 | 
							
								)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# copy everything to build_dir, if you plan on adding other files in the top
							 | 
						||
| 
								 | 
							
								# rootdir of sourcedir, please add them here as well, otherwise use 'toc/'s
							 | 
						||
| 
								 | 
							
								# meson.build file
							 | 
						||
| 
								 | 
							
								sphinx_files = ['index.rst']
							 | 
						||
| 
								 | 
							
								foreach file : sphinx_files
							 | 
						||
| 
								 | 
							
									configure_file(input: file, output: file, copy: true)
							 | 
						||
| 
								 | 
							
								endforeach
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# and those in toc
							 | 
						||
| 
								 | 
							
								subdir('toc')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								sphinx_doc = custom_target(
							 | 
						||
| 
								 | 
							
										'weston-doc-breathe',
							 | 
						||
| 
								 | 
							
										command: script_doxy_sphinx,
							 | 
						||
| 
								 | 
							
										output: 'doc',
							 | 
						||
| 
								 | 
							
										build_by_default: true,
							 | 
						||
| 
								 | 
							
								)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# we need this because we will have a stale 'doc' directory
							 | 
						||
| 
								 | 
							
								# and this forces it to be rebuilt
							 | 
						||
| 
								 | 
							
								docs = run_target(
							 | 
						||
| 
								 | 
							
										'docs',
							 | 
						||
| 
								 | 
							
										command: script_doxy_sphinx,
							 | 
						||
| 
								 | 
							
								)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								install_subdir(
							 | 
						||
| 
								 | 
							
									sphinx_doc.full_path(),
							 | 
						||
| 
								 | 
							
									install_dir: join_paths(dir_data, 'doc', 'weston'),
							 | 
						||
| 
								 | 
							
									strip_directory: true,
							 | 
						||
| 
								 | 
							
								)
							 |