From f57e1a9fb7152da89317408e2a1ad6d179470a96 Mon Sep 17 00:00:00 2001 From: "Kenneth Benzie (Benie)" Date: Fri, 26 Feb 2016 22:22:35 +0000 Subject: [PATCH] Complete CMake snippets targeting version 3.0 --- UltiSnips/cmake.snippets | 255 ++++++++++++++++++++++++++++++++++----- 1 file changed, 225 insertions(+), 30 deletions(-) diff --git a/UltiSnips/cmake.snippets b/UltiSnips/cmake.snippets index bf231c2..f280357 100644 --- a/UltiSnips/cmake.snippets +++ b/UltiSnips/cmake.snippets @@ -256,7 +256,29 @@ find_file(${1:variable} $22`!p snip.rv=complete(t[22], ['CMAKE_FIND_ROOT_PATH_BOTH', 'ONLY_CMAKE_FIND_ROOT_PATH', 'NO_CMAKE_FIND_ROOT_PATH'])`}}) endsnippet -# TODO: find_package +snippet find_package "simple" +find_package(${1:package}${2: version}${3: EXACT}${4: QUIET}${5: MODULE}${6: REQUIRED}${7: COMPONENTS ${8:components}}${9: OPTIONAL_COMPONENTS ${10:components}}${11: NO_POLICY_SCOPE}) +endsnippet +snippet find_package "config" +find_package(${1:package} ${2:version}${3: EXACT}${4: QUIET}${5: REQUIRED}${6: + COMPONENTS ${7:components}}${8: + $9`!p snip.rv=complete(t[9], ['CONFIG', 'NO_MODULE'])`}${10: + NO_POLICY_SCOPE}${11: + NAMES ${12:names}}${13: + CONFIGS ${14:configs}}${15: + HINTS ${16:paths}}${17: + PATHS ${18:paths}}${19: + PATH_SUFFIXES ${20:suffixs}}${21:${22: + NO_DEFAULT_PATH}${23: + NO_CMAKE_ENVIRONMENT_PATH}${24: + NO_CMAKE_PATH}${25: + NO_SYSTEM_ENVIRONMENT_PATH}${26: + NO_CMAKE_PACKAGE_REGISTRY}${27: + NO_CMAKE_BUILDS_PATH}${28: + NO_CMAKE_SYSTEM_PATH}${29: + NO_CMAKE_SYSTEM_PACKAGE_REGISTRY}}${30: + $31`!p snip.rv=complete(t[31], ['CMAKE_FIND_ROOT_PATH_BOTH', 'ONLY_CMAKE_FIND_ROOT_PATH', 'NO_CMAKE_FIND_ROOT_PATH'])`}) +endsnippet snippet find_path "shorthand" find_path(${1:variable} ${1:names}) @@ -311,35 +333,156 @@ function(${1:name} ${2:arguments}) endfunction() endsnippet -# TODO: get_cmake_property() -# TODO: get_directory_property() -# TODO: get_filename_property() +snippet get_cmake_property +get_cmake_property(${1:variable} $2`!p snip.rv=complete(t[2], ['VARIABLES', 'CACHE_VARIABLES', 'COMMANDS', 'MACROS', 'COMPONENTS'])`) +endsnippet + +global !p +DIRECTORY_PROPERTIES=[ +'ADDITIONAL_MAKE_CLEAN_FILES', 'CACHE_VARIABLES', 'CLEAN_NO_CUSTOM', +'CMAKE_CONFIGURE_DEPENDS', 'COMPILE_DEFINITIONS_', +'COMPILE_DEFINITIONS', 'COMPILE_OPTIONS', 'DEFINITIONS', 'EXCLUDE_FROM_ALL', +'IMPLICIT_DEPENDS_INCLUDE_TRANSFORM', 'INCLUDE_DIRECTORIES', +'INCLUDE_REGULAR_EXPRESSION', 'INTERPROCEDURAL_OPTIMIZATION_', +'INTERPROCEDURAL_OPTIMIZATION', 'LINK_DIRECTORIES', 'LISTFILE_STACK', +'MACROS', 'PARENT_DIRECTORY', 'RULE_LAUNCH_COMPILE', 'RULE_LAUNCH_CUSTOM', +'RULE_LAUNCH_LINK', 'TEST_INCLUDE_FILE', 'VARIABLES', +'VS_GLOBAL_SECTION_POST_
', 'VS_GLOBAL_SECTION_PRE_
', +] +endglobal +snippet get_directory_property "property" +get_directory_property(${1:variable}${2: DIRECTORY ${3:directory}} $4`!p snip.rv=complete(t[4], DIRECTORY_PROPERTIES)`) +endsnippet +snippet get_directory_property "definition" +get_directory_property(${1:variable}${2: DIRECTORY ${3:directory}} DEFINITION ${4:name}) +endsnippet + +snippet get_filename_component "full" +get_filename_component(${1:variable} ${2:filename} $3`!p snip.rv=complete(t[3], ['DIRECTORY', 'NAME', 'EXT', 'NAME_WE', 'ABSOLUTE', 'REALPATH', 'PATH'])`${4: ${5:CACHE}}) +endsnippet +snippet get_filename_component "system" +get_filename_component(${1:variable} ${2:filename} PROGRAM${3: PROGRAM_ARGS ${4:{arguments}}}${5: CACHE}) +endsnippet global !p PROPERTY_OPTIONS=['SET', 'DEFINED', 'BRIEF_DOCS', 'FULL_DOCS'] +GLOBAL_PROPERTIES=['ALLOW_DUPLICATE_CUSTOM_TARGETS', 'AUTOGEN_TARGETS_FOLDER', +'AUTOMOC_TARGETS_FOLDER', 'DEBUG_CONFIGURATIONS', 'DISABLED_FEATURES', +'ENABLED_FEATURES', 'ENABLED_LANGUAGES', 'FIND_LIBRARY_USE_LIB64_PATHS', +'FIND_LIBRARY_USE_OPENBSD_VERSIONING', 'GLOBAL_DEPENDS_DEBUG_MODE', +'GLOBAL_DEPENDS_NO_CYCLES', 'IN_TRY_COMPILE', 'PACKAGES_FOUND', +'PACKAGES_NOT_FOUND', 'JOB_POOLS', 'PREDEFINED_TARGETS_FOLDER', +'ECLIPSE_EXTRA_NATURES', 'REPORT_UNDEFINED_PROPERTIES', +'RULE_LAUNCH_COMPILE', 'RULE_LAUNCH_CUSTOM', 'RULE_LAUNCH_LINK', +'RULE_MESSAGES', 'TARGET_ARCHIVES_MAY_BE_SHARED_LIBS', +'TARGET_SUPPORTS_SHARED_LIBS', 'USE_FOLDERS'] endglobal snippet get_property "global" -get_property(${1:variable} GLOBAL PROPERTY ${2:name} $3`!p snip.rv=complete(t[3], PROPERTY_OPTIONS)`) +get_property(${1:variable} GLOBAL PROPERTY $2`!p snip.rv=complete(t[2], GLOBAL_PROPERTIES)` $3`!p snip.rv=complete(t[3], PROPERTY_OPTIONS)`) endsnippet snippet get_property "directory" -get_property(${1:variable} DIRECTORY ${2:directory} PROPERTY ${3:name} $4`!p snip.rv=complete(t[4], PROPERTY_OPTIONS)`) +get_property(${1:variable} DIRECTORY ${2:directory} PROPERTY $3`!p snip.rv=complete(t[3], DIRECTORY_PROPERTIES)` $4`!p snip.rv=complete(t[4], PROPERTY_OPTIONS)`) endsnippet snippet get_property "target" -get_property(${1:variable} TARGET ${2:target} PROPERTY ${3:name} $4`!p snip.rv=complete(t[4], PROPERTY_OPTIONS)`) +get_property(${1:variable} TARGET ${2:target} PROPERTY $3`!p snip.rv=complete(t[3], TARGET_PROPERTIES)` $4`!p snip.rv=complete(t[4], PROPERTY_OPTIONS)`) endsnippet snippet get_property "source" -get_property(${1:variable} SOURCE ${2:source} PROPERTY ${3:name} $4`!p snip.rv=complete(t[4], PROPERTY_OPTIONS)`) +get_property(${1:variable} SOURCE ${2:source} PROPERTY $3`!p snip.rv=complete(t[3], SOURCE_FILE_PROPERTIES)` $4`!p snip.rv=complete(t[4], PROPERTY_OPTIONS)`) endsnippet +global !p +CACHE_PROPERTIES=[ 'ADVANCED', 'HELPSTRING', 'MODIFIED', 'STRINGS', 'TYPE', 'VALUE'] +endglobal snippet get_property "cache" -get_property(${1:variable} CACHE ${2:entry} PROPERTY ${3:name} $4`!p snip.rv=complete(t[4], PROPERTY_OPTIONS)`) +get_property(${1:variable} CACHE ${2:entry} PROPERTY $3`!p snip.rv=complete(t[3], CACHE_PROPERTIES)` $4`!p snip.rv=complete(t[4], PROPERTY_OPTIONS)`) endsnippet -snippet get_property "cache" +snippet get_property "variable" get_property(${1:variable} VARIABLE PROPERTY ${2:name} $3`!p snip.rv=complete(t[4], PROPERTY_OPTIONS)`) endsnippet -# TODO: get_source_file_property() -# TODO: get_target_property() -# TODO: get_test_property() +global !p +SOURCE_FILE_PROPERTIES=['ABSTRACT', 'AUTOUIC_OPTIONS', 'AUTORCC_OPTIONS', +'COMPILE_DEFINITIONS_', 'COMPILE_DEFINITIONS', 'COMPILE_FLAGS', +'EXTERNAL_OBJECT', 'Fortran_FORMAT', 'GENERATED', 'HEADER_FILE_ONLY', +'KEEP_EXTENSION', 'LABELS', 'LANGUAGE', 'LOCATION', 'MACOSX_PACKAGE_LOCATION', +'OBJECT_DEPENDS', 'OBJECT_OUTPUTS', 'SYMBOLIC', 'WRAP_EXCLUDE'] +endglobal +snippet get_source_file_property +get_source_file_property(${1:variable} ${2:file} $3`!p snip.rv=complete(t[3], SOURCE_FILE_PROPERTIES)`) +endsnippet + +global !p +TARGET_PROPERTIES=['ALIASED_TARGET', 'ARCHIVE_OUTPUT_DIRECTORY_', +'ARCHIVE_OUTPUT_DIRECTORY', 'ARCHIVE_OUTPUT_NAME_', +'ARCHIVE_OUTPUT_NAME', 'AUTOGEN_TARGET_DEPENDS', 'AUTOMOC_MOC_OPTIONS', +'AUTOMOC', 'AUTOUIC', 'AUTOUIC_OPTIONS', 'AUTORCC', 'AUTORCC_OPTIONS', +'BUILD_WITH_INSTALL_RPATH', 'BUNDLE_EXTENSION', 'BUNDLE', +'COMPATIBLE_INTERFACE_BOOL', 'COMPATIBLE_INTERFACE_NUMBER_MAX', +'COMPATIBLE_INTERFACE_NUMBER_MIN', 'COMPATIBLE_INTERFACE_STRING', +'COMPILE_DEFINITIONS_', 'COMPILE_DEFINITIONS', 'COMPILE_FLAGS', +'COMPILE_OPTIONS', '_OUTPUT_NAME', '_POSTFIX', 'DEBUG_POSTFIX', +'DEFINE_SYMBOL', 'EchoString', 'ENABLE_EXPORTS', 'EXCLUDE_FROM_ALL', +'EXCLUDE_FROM_DEFAULT_BUILD_', 'EXCLUDE_FROM_DEFAULT_BUILD', +'EXPORT_NAME', 'FOLDER', 'Fortran_FORMAT', 'Fortran_MODULE_DIRECTORY', +'FRAMEWORK', 'GENERATOR_FILE_NAME', 'GNUtoMS', 'HAS_CXX', +'IMPLICIT_DEPENDS_INCLUDE_TRANSFORM', 'IMPORTED_CONFIGURATIONS', +'IMPORTED_IMPLIB_', 'IMPORTED_IMPLIB', +'IMPORTED_LINK_DEPENDENT_LIBRARIES_', +'IMPORTED_LINK_DEPENDENT_LIBRARIES', +'IMPORTED_LINK_INTERFACE_LANGUAGES_', +'IMPORTED_LINK_INTERFACE_LANGUAGES', +'IMPORTED_LINK_INTERFACE_LIBRARIES_', +'IMPORTED_LINK_INTERFACE_LIBRARIES', +'IMPORTED_LINK_INTERFACE_MULTIPLICITY_', +'IMPORTED_LINK_INTERFACE_MULTIPLICITY', +'IMPORTED_LOCATION_', 'IMPORTED_LOCATION', +'IMPORTED_NO_SONAME_', 'IMPORTED_NO_SONAME', 'IMPORTED', +'IMPORTED_SONAME_', 'IMPORTED_SONAME', 'IMPORT_PREFIX', +'IMPORT_SUFFIX', 'INCLUDE_DIRECTORIES', 'INSTALL_NAME_DIR', +'INSTALL_RPATH', 'INSTALL_RPATH_USE_LINK_PATH', 'INTERFACE_AUTOUIC_OPTIONS', +'INTERFACE_COMPILE_DEFINITIONS', 'INTERFACE_COMPILE_OPTIONS', +'INTERFACE_INCLUDE_DIRECTORIES', 'INTERFACE_LINK_LIBRARIES', +'INTERFACE_POSITION_INDEPENDENT_CODE', 'INTERFACE_SYSTEM_INCLUDE_DIRECTORIES', +'INTERPROCEDURAL_OPTIMIZATION_', 'INTERPROCEDURAL_OPTIMIZATION', +'JOB_POOL_COMPILE', 'JOB_POOL_LINK', 'LABELS', '_VISIBILITY_PRESET', +'LIBRARY_OUTPUT_DIRECTORY_', 'LIBRARY_OUTPUT_DIRECTORY', +'LIBRARY_OUTPUT_NAME_', 'LIBRARY_OUTPUT_NAME', +'LINK_DEPENDS_NO_SHARED', 'LINK_DEPENDS', 'LINKER_LANGUAGE', +'LINK_FLAGS_', 'LINK_FLAGS', 'LINK_INTERFACE_LIBRARIES_', +'LINK_INTERFACE_LIBRARIES', 'LINK_INTERFACE_MULTIPLICITY_', +'LINK_INTERFACE_MULTIPLICITY', 'LINK_LIBRARIES', 'LINK_SEARCH_END_STATIC', +'LINK_SEARCH_START_STATIC', 'LOCATION_', 'LOCATION', +'MACOSX_BUNDLE_INFO_PLIST', 'MACOSX_BUNDLE', 'MACOSX_FRAMEWORK_INFO_PLIST', +'MACOSX_RPATH', 'MAP_IMPORTED_CONFIG_', 'NAME', 'NO_SONAME', +'NO_SYSTEM_FROM_IMPORTED', 'OSX_ARCHITECTURES_', 'OSX_ARCHITECTURES', +'OUTPUT_NAME_', 'OUTPUT_NAME', 'PDB_NAME_', 'PDB_NAME', +'PDB_OUTPUT_DIRECTORY_', 'PDB_OUTPUT_DIRECTORY', +'POSITION_INDEPENDENT_CODE', 'POST_INSTALL_SCRIPT', 'PREFIX', +'PRE_INSTALL_SCRIPT', 'PRIVATE_HEADER', 'PROJECT_LABEL', 'PUBLIC_HEADER', +'RESOURCE', 'RULE_LAUNCH_COMPILE', 'RULE_LAUNCH_CUSTOM', 'RULE_LAUNCH_LINK', +'RUNTIME_OUTPUT_DIRECTORY_', 'RUNTIME_OUTPUT_DIRECTORY', +'RUNTIME_OUTPUT_NAME_', 'RUNTIME_OUTPUT_NAME', 'SKIP_BUILD_RPATH', +'SOURCES', 'SOVERSION', 'STATIC_LIBRARY_FLAGS_', +'STATIC_LIBRARY_FLAGS', 'SUFFIX', 'TYPE', 'VERSION', +'VISIBILITY_INLINES_HIDDEN', 'VS_DOTNET_REFERENCES', +'VS_DOTNET_TARGET_FRAMEWORK_VERSION', 'VS_GLOBAL_KEYWORD', +'VS_GLOBAL_PROJECT_TYPES', 'VS_GLOBAL_ROOTNAMESPACE', 'VS_GLOBAL_', +'VS_KEYWORD', 'VS_SCC_AUXPATH', 'VS_SCC_LOCALPATH', 'VS_SCC_PROJECTNAME', +'VS_SCC_PROVIDER', 'VS_WINRT_EXTENSIONS', 'VS_WINRT_REFERENCES', +'WIN32_EXECUTABLE', 'XCODE_ATTRIBUTE_'] +endglobal +snippet get_target_property +get_target_property(${1:variable} ${2:target} $3`!p snip.rv=complete(t[3], TARGET_PROPERTIES)`) +endsnippet + +global !p +TEST_PROPERTIES=['ATTACHED_FILES_ON_FAIL', 'ATTACHED_FILES', 'COST', 'DEPENDS', +'ENVIRONMENT', 'FAIL_REGULAR_EXPRESSION', 'LABELS', 'MEASUREMENT', +'PASS_REGULAR_EXPRESSION', 'PROCESSORS', 'REQUIRED_FILES', 'RESOURCE_LOCK', +'RUN_SERIAL', 'SKIP_RETURN_CODE', 'TIMEOUT', 'WILL_FAIL', 'WORKING_DIRECTORY'] +endglobal +snippet get_test_property +get_test_property(${1:test} ${2:property} $3`!p snip.rv=complete(t[3], TEST_PROPERTIES)`) +endsnippet snippet if if(${1:condition}) @@ -367,7 +510,55 @@ snippet include include(${1:file|module}${2: ${3:OPTIONAL}}${4: ${5:RESULT_VARIABLE} ${6:variable}}${7: NO_POLICY_SCOPE}) endsnippet -# TODO: install() +snippet install "targets" +install(TARGETS ${1:targets}${2: EXPORT ${3:export-name}}${4: + $5`!p snip.rv=complete(t[5], ['ARCHIVE', 'LIBRARY', 'RUNTIME', 'FRAMEWORK', 'BUNDLE', 'PRIVATE_HEADER', 'PUBLIC_HEADER', 'RESOURCE'])` DESTINATION ${6:directory}${7: + INCLUDES DESTINATION ${8:directory}}${9: + PERMISSIONS ${10:permissions}}${11: + CONFIGURATIONS $12`!p snip.rv=complete(t[12], ['Debug', 'Release', 'RelMinSize', 'RelWithDebInfo'])`}${13: + COMPONENT ${14:component}}${15: + OPTIONAL}${16: + $17`!p snip.rv=complete(t[17], ['NAMELINK_ONLY', 'NAMELINK_SKIP'])`}}) +endsnippet +snippet install "files or programs" +install($1`!p snip.rv=complete(t[1], ['FILES', 'PROGRAMS'])` + DESTINATION ${2:directory}${3: + PERMISSIONS ${4:permissions}}${5: + CONFIGURATIONS $6`!p snip.rv=complete(t[6], ['Debug', 'Release', 'RelMinSize', 'RelWithDebInfo'])`}${7: + COMPONENT ${8:component}}${9: + RENAME ${10:name}}${11: + OPTIONAL}) +endsnippet +snippet install "directories" +install(DIRECTORY ${1:directories} + DESTINATION ${2:directory}${3: + FILE_PERMISSIONS ${4:permissions}}${5: + DIRECTORY_PERMISSIONS ${6:permissions}}${7: + USE_SOURCE_PERMISSIONS}${8: + OPTIONAL}${9: + CONFIGURATIONS $10`!p snip.rv=complete(t[10], ['Debug', 'Release', 'RelMinSize', 'RelWithDebInfo'])`}${11: + COMPONENT ${12:component}}${13: + FILES_MATCHING}${14:${15: + $16`!p snip.rv=complete(t[16], ['PATTERN', 'REGEX'])` ${17:pattern|regex}}${18: + EXCLUDE}${19: + PERMISSIONS ${20:permissions}}}) +endsnippet +snippet install "script" +install(SCRIPT ${1:file}) +endsnippet +snippet install "code" +install(CODE ${1:code}) +endsnippet +snippet install "export" +install(EXPORT ${1:export-name} + DESTINATION ${2:directory}${3: + NAMESPACE ${4:namespace}}${5: + FILE ${6:name}.cmake}${7: + PERMISSIONS ${8:permissions}}${9: + CONFIGURATIONS $10`!p snip.rv=complete(t[10], ['Debug', 'Release', 'RelMinSize', 'RelWithDebInfo'])`}${11: + EXPORT_LINK_INTERFACE_LIBRARIES}${12: + COMPONENT ${13:component}}) +endsnippet snippet link_directories link_directories(${1:directories}) @@ -438,53 +629,57 @@ separate_arguments(${1:variable} $2`!p snip.rv=complete(t[2], ['UNIX_COMMAND', ' endsnippet snippet set_directory_properties -set_directory_properties(PROPERTIES ${1:property} ${2:value}) +set_directory_properties(PROPERTIES $1`!p snip.rv=complete(t[1], DIRECTORY_PROPERTIES)` ${2:value}) endsnippet snippet set_property "global" set_property(GLOBAL${1: ${2:APPEND}}${3: ${4:APPEND_STRING}} - PROPERTY ${5:name}${6: ${7:values}}) + PROPERTY $5`!p snip.rv=complete(t[5], GLOBAL_PROPERTIES)`${6: ${7:values}}) endsnippet - snippet set_property "directory" set_property(DIRECTORY ${1:directory}${2: ${3:APPEND}}${4: ${5:APPEND_STRING}} - PROPERTY ${6:name}${7: ${8:values}}) + PROPERTY $6`!p snip.rv=complete(t[6], DIRECTORY_PROPERTIES)`${7: ${8:values}}) endsnippet snippet set_property "target" set_property(TARGET ${1:targets}${2: ${3:APPEND}}${4: ${5:APPEND_STRING}} - PROPERTY ${6:name}${7: ${8:values}}) + PROPERTY $6`!p snip.rv=complete(t[6], TARGET_PROPERTIES)`${7: ${8:values}}) endsnippet snippet set_property "source" set_property(SOURCE ${1:sources}${2: ${3:APPEND}}${4: ${5:APPEND_STRING}} - PROPERTY ${6:name}${7: ${8:values}}) + PROPERTY $6`!p snip.rv=complete(t[6], SOURCE_FILE_PROPERTIES)`${7: ${8:values}}) endsnippet snippet set_property "test" set_property(TEST ${1:tests}${2: ${3:APPEND}}${4: ${5:APPEND_STRING}} - PROPERTY ${6:name}${7: ${8:values}}) + PROPERTY $6`!p snip.rv=complete(t[6], TEST_PROPERTIES)`${7: ${8:values}}) endsnippet snippet set_property "cache" set_property(CACHE ${1:entries}${2: ${3:APPEND}}${4: ${5:APPEND_STRING}} - PROPERTY ${6:name}${7: ${8:values}}) + PROPERTY $6`!p snip.rv=complete(t[6], CACHE_PROPERTIES)`${7: ${8:values}}) endsnippet -# TODO Add support for CACHE|PARENT_SCOPE options. -snippet set +snippet set "simple" set(${1:variable} ${2:value}) endsnippet +snippet set "cache" +set(${1:variable} ${2:value} CACHE $3`!p snip.rv=complete(t[3], ['FILEPATH', 'PATH', 'STRING', 'BOOL', 'INTERNAL'])` "${4:description}"${5: FORCE}) +endsnippet +snippet set "parent scope" +set(${1:variable} ${2:value} PARENT_SCOPE) +endsnippet +snippet set "environment" +set(ENV{${1:variable}} ${2:value}) +endsnippet snippet set_source_files_properties -set_source_files_properties(${1:files} - PROPERTIES ${property} ${value}) +set_source_files_properties(${1:files} PROPERTIES $2`!p snip.rv=complete(t[2], SOURCE_FILE_PROPERTIES)` ${3:value}) endsnippet snippet set_target_properties -set_target_properties(${1:targets} - PROPERTIES ${2:property} ${3:value}) +set_target_properties(${1:targets} PROPERTIES $2`!p snip.rv=complete(t[2], TARGET_PROPERTIES)` ${3:value}) endsnippet snippet set_tests_properties -set_tests_properties(${1:tests} - PROPERTIES ${2:property} ${3:value}) +set_tests_properties(${1:tests} PROPERTIES $2`!p snip.rv=complete(t[2], TEST_PROPERTIES)` ${3:value}) endsnippet snippet site_name