c0fce3206c
Sync the svn template with the one from ports MFC r289180 (by peter): Update from svn-1.8.14 to 1.9.2. Formal release notes are available: https://subversion.apache.org/docs/release-notes/1.9.html Of particular note, the client checkout format has *not* changed so upgrades should *not* be required. When reading a repository (file:// or running as a local server), an improved fsfs version 7 is available with significant performance improvements. An optional upgrade is possible to use the new features. Without the upgrade, this is fully read/write compatible with the version 6 fsfs as in svn-1.8. MFC r298845: Update from subversion 1.9.2 to 1.9.4. This contains only bug fixes, no new features. The repository format is also unchanged from 1.9.2. Full list of changes between 1.9.4 and earlier versions: https://svn.apache.org/repos/asf/subversion/tags/1.9.4/CHANGES Note that the two security issues fixed in 1.9.4 (CVE-2016-2167 and CVE-2016-2168) do not affect the version of Subversion in the FreeBSD base system, since neither SASL nor Apache modules are enabled. MFC r298996: Re-sync the FreeBSD-specific Subversion template with the one from ports. Relnotes: yes
89 lines
3.0 KiB
Python
89 lines
3.0 KiB
Python
# Configuration file for YouCompleteMe vim plugin to allow the plugin
|
|
# to determine the compile flags. This file is based on:
|
|
# https://github.com/Valloric/YouCompleteMe/blob/master/cpp/ycm/.ycm_extra_conf.py
|
|
#
|
|
# This is free and unencumbered software released into the public domain.
|
|
#
|
|
# Anyone is free to copy, modify, publish, use, compile, sell, or
|
|
# distribute this software, either in source code form or as a compiled
|
|
# binary, for any purpose, commercial or non-commercial, and by any
|
|
# means.
|
|
#
|
|
# In jurisdictions that recognize copyright laws, the author or authors
|
|
# of this software dedicate any and all copyright interest in the
|
|
# software to the public domain. We make this dedication for the benefit
|
|
# of the public at large and to the detriment of our heirs and
|
|
# successors. We intend this dedication to be an overt act of
|
|
# relinquishment in perpetuity of all present and future rights to this
|
|
# software under copyright law.
|
|
#
|
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
# IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
|
# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
|
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
|
# OTHER DEALINGS IN THE SOFTWARE.
|
|
#
|
|
# For more information, please refer to <http://unlicense.org/>
|
|
|
|
import os
|
|
import ycm_core
|
|
from clang_helpers import PrepareClangFlags
|
|
|
|
compilation_database_folder = os.path.dirname(os.path.realpath(__file__))
|
|
|
|
if compilation_database_folder:
|
|
database = ycm_core.CompilationDatabase( compilation_database_folder )
|
|
else:
|
|
database = None
|
|
|
|
def MakeRelativePathsInFlagsAbsolute( flags, working_directory ):
|
|
if not working_directory:
|
|
return flags
|
|
new_flags = []
|
|
make_next_absolute = False
|
|
path_flags = [ '-isystem', '-I', '-iquote', '--sysroot=' ]
|
|
for flag in flags:
|
|
new_flag = flag
|
|
|
|
if make_next_absolute:
|
|
make_next_absolute = False
|
|
if not flag.startswith( '/' ):
|
|
new_flag = os.path.join( working_directory, flag )
|
|
|
|
for path_flag in path_flags:
|
|
if flag == path_flag:
|
|
make_next_absolute = True
|
|
break
|
|
|
|
if flag.startswith( path_flag ):
|
|
path = flag[ len( path_flag ): ]
|
|
new_flag = path_flag + os.path.join( working_directory, path )
|
|
break
|
|
|
|
if new_flag:
|
|
new_flags.append( new_flag )
|
|
return new_flags
|
|
|
|
|
|
def FlagsForFile( filename ):
|
|
if database:
|
|
# Bear in mind that compilation_info.compiler_flags_ does NOT return a
|
|
# python list, but a "list-like" StringVec object
|
|
compilation_info = database.GetCompilationInfoForFile( filename )
|
|
final_flags = PrepareClangFlags(
|
|
MakeRelativePathsInFlagsAbsolute(
|
|
compilation_info.compiler_flags_,
|
|
compilation_info.compiler_working_dir_ ),
|
|
filename )
|
|
do_cache = True
|
|
else:
|
|
final_flags = [ ]
|
|
do_cache = False
|
|
|
|
return {
|
|
'flags': final_flags,
|
|
'do_cache': do_cache
|
|
}
|