diff --git a/MOVED b/MOVED --- a/MOVED +++ b/MOVED @@ -17745,7 +17745,6 @@ devel/llvm80||2023-01-15|Removed old llvm ports devel/llvm90||2023-01-15|Removed old llvm ports devel/android-tools-simpleperf||2023-01-15|Depends on removed old llvm ports -devel/ccls||2023-01-15|Depends on removed old llvm ports devel/f18||2023-01-15|Depends on removed old llvm ports devel/xtoolchain-llvm80||2023-01-15|Depends on removed old llvm ports devel/xtoolchain-llvm90||2023-01-15|Depends on removed old llvm ports diff --git a/devel/Makefile b/devel/Makefile --- a/devel/Makefile +++ b/devel/Makefile @@ -337,6 +337,7 @@ SUBDIR += ccache-static SUBDIR += cccc SUBDIR += ccdoc + SUBDIR += ccls SUBDIR += ccrtp SUBDIR += cctz SUBDIR += cdash diff --git a/devel/ccls/Makefile b/devel/ccls/Makefile new file mode 100644 --- /dev/null +++ b/devel/ccls/Makefile @@ -0,0 +1,57 @@ +PORTNAME= ccls +DISTVERSION= 0.20230115 +CATEGORIES= devel + +MAINTAINER= khng@FreeBSD.org +COMMENT= C/C++/ObjC language server +WWW= https://github.com/MaskRay/ccls + +LICENSE= APACHE20 +LICENSE_FILE= ${WRKSRC}/LICENSE + +BUILD_DEPENDS= rapidjson>=1.1.0_4:devel/rapidjson + +USES= cmake compiler:c++17-lang llvm:lib localbase +USE_GITHUB= yes +GH_ACCOUNT= MaskRay +GH_TAGNAME= 8bc3959537ad + +CMAKE_ARGS= -DCCLS_VERSION:STRING="${DISTVERSION}" \ + -DClang_DIR:PATH="${LLVM_PREFIX}/lib/cmake/clang" \ + -DLLVM_DIR:PATH="${LLVM_PREFIX}/lib/cmake/llvm" +CXXFLAGS+= -DNDEBUG + +PLIST_FILES= bin/ccls +PORTDOCS= * + +OPTIONS_DEFINE= DOCS + +DOCS_MASTER_SITES= LOCAL/khng:docs +DOCS_DISTFILES= ccls.wiki-${DISTVERSION}.tar.gz:docs + +post-install-DOCS-on: + @${MKDIR} ${STAGEDIR}${DOCSDIR} + cd ${WRKDIR}/ccls.wiki && ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR} + +.if defined(MAINTAINER_MODE) +MAINTAINER_DISTFILE= \ + ${_DISTDIR:S|/$||}/${DOCS_DISTFILES:Mccls.wiki-*.tar.gz\:*:C|\:.*$||} + +maintainer-docs-fetch: + @${MAKE} clean + @${MKDIR} ${WRKDIR}/ccls.wiki + @git clone https://github.com/MaskRay/ccls.wiki.git \ + ${WRKDIR}/ccls.wiki + @${TAR} -zcf ${MAINTAINER_DISTFILE} -C ${WRKDIR} \ + --uid 0 --gid 0 --exclude-vcs ccls.wiki + @${MAKE} makesum + @${MAKE} clean + +${MAINTAINER_DISTFILE}: maintainer-docs-fetch + +maintainer-docs-distfiles: ${MAINTAINER_DISTFILE} + scp ${MAINTAINER_DISTFILE} \ + freefall.freebsd.org:public_distfiles/ +.endif + +.include diff --git a/devel/ccls/distinfo b/devel/ccls/distinfo new file mode 100644 --- /dev/null +++ b/devel/ccls/distinfo @@ -0,0 +1,5 @@ +TIMESTAMP = 1676250001 +SHA256 (ccls.wiki-0.20230115.tar.gz) = 2cce618c9a59685704b9904b8813856b2b775c967ceff1bf791c61dfb2e23fb6 +SIZE (ccls.wiki-0.20230115.tar.gz) = 39089 +SHA256 (MaskRay-ccls-0.20230115-8bc3959537ad_GH0.tar.gz) = 720da9b1db4ec0352b84053ffc891a95956e739d5e9e42f4555b94f87320025f +SIZE (MaskRay-ccls-0.20230115-8bc3959537ad_GH0.tar.gz) = 161773 diff --git a/devel/ccls/pkg-descr b/devel/ccls/pkg-descr new file mode 100644 --- /dev/null +++ b/devel/ccls/pkg-descr @@ -0,0 +1,16 @@ +Ccls is a C/C++/Objective-C language server with the following +features: + +- Code completion (with both signature help and snippets) +- Definition/references, and other cross references +- Cross reference extensions: $ccls/call $ccls/inheritance $ccls/member + $ccls/vars ... +- Formatting +- Hierarchies: call (caller/callee) hierarchy, inheritance + (base/derived) hierarchy, member hierarchy +- Symbol rename +- Document symbols and approximate search of workspace symbol +- Hover information +- Diagnostics and code actions (clang FixIts) +- Semantic highlighting and preprocessor skipped regions +- Semantic navigation: $ccls/navigate