Bug 215878

Summary: New port: devel/jucipp lightweight C++-IDE with support for C++11, C++14 and C++17
Product: Ports & Packages Reporter: Mohammad S. Babaei <info>
Component: Individual Port(s)Assignee: Tobias Kortkamp <tobik>
Status: Closed FIXED    
Severity: Affects Many People CC: tobik
Priority: ---    
Version: Latest   
Hardware: Any   
OS: Any   
URL: https://reviews.freebsd.org/D10479
Attachments:
Description Flags
juCI++ 1.2.2.1 shar file
none
juC++ 1.2.3 shar file
info: maintainer-approval+
editors/jucipp shar file
info: maintainer-approval+
editors/jucipp shar file
info: maintainer-approval+
jucipp.diff none

Description Mohammad S. Babaei 2017-01-08 17:57:38 UTC
Created attachment 178629 [details]
juCI++ 1.2.2.1 shar file

A lightweight C++-IDE with support for C++11, C++14 and C++17

juCI++, is a platform independent and lightweight C++ IDE designed towards
libclang with speed, stability, and ease of use in mind.

It supports syntax highlighting for more than 100 different file types.
Furthermore, it supports CMake and Meson as build systems. juCI++ implements
Git support through libgit2. It provides debug integration, both local an
remote through lldb.

Other supported featured are: fast C++ autocompletion, tooltips showing type
information and doxygen documentation, rename refactoring across files,
automated documentation search, find symbol through Ctags, spell checking
depending on file context, runnig shell commands within JuCi++, regex search
and replace, smart paste, keys and indentation, source minimap, split view,
full UTF-8 support; just to name a few.

WWW: https://github.com/cppit/jucipp
Comment 1 Mohammad S. Babaei 2017-03-19 18:08:02 UTC
Created attachment 180963 [details]
juC++ 1.2.3 shar file

OK, since nobody picked up this new port request yet and a new version has been released, I assume nobody did any work on this port. So, I'll submit a new shar file for juCI++ 1.2.3 and make the older one obsolete.

Hope somebody pick this one up as soon as possible. I would like to see this awesome lightweight ide in FreeBSD ports.
Comment 2 Tobias Kortkamp freebsd_committer freebsd_triage 2017-04-22 10:54:29 UTC
Would be great to have indeed!  But there are some problems that need
to be fixed first.  See my comments below.

XCATEGORIES=	devel

Why devel and not editors?

XBUILD_DEPENDS+=	aspell>=0:textproc/aspell
XRUN_DEPENDS+=	aspell>=0:textproc/aspell
X
XBUILD_DEPENDS+=	boost-libs>=1.54.0:devel/boost-libs
XRUN_DEPENDS+=	boost-libs>=1.54.0:devel/boost-libs
X
...
X
XBUILD_DEPENDS+=	libgit2>=0:devel/libgit2
XRUN_DEPENDS+=	libgit2>=0:devel/libgit2
X

This is almost certainly wrong.  Did you mean LIB_DEPENDS?

XBUILD_DEPENDS+=	gtkmm30>=0:x11-toolkits/gtkmm30
XRUN_DEPENDS+=	gtkmm30>=0:x11-toolkits/gtkmm30
X
XBUILD_DEPENDS+=	gtksourceviewmm3>=0:x11-toolkits/gtksourceviewmm3
XRUN_DEPENDS+=	gtksourceviewmm3>=0:x11-toolkits/gtksourceviewmm3

There is a helper for this.  See USE_GNOME.

XBUILD_DEPENDS+=	lldb38>=0:devel/lldb38
XRUN_DEPENDS+=	lldb38>=0:devel/lldb38

This should be removed. It's part of the devel/llvm* ports.

XBUILD_DEPENDS+=	llvm39>=0:devel/llvm39
XRUN_DEPENDS+=	llvm39>=0:devel/llvm39

Should be a LIB_DEPENDS too.  If possible try to use devel/llvm40.

XMAKE_JOBS_SAFE=	yes

Remove this.  It doesn't do anything.

XWRKSRC=	${WRKDIR}/${PORTNAME}-${PORTVERSION}
X
XUSE_GITHUB=	nodefault
...
XGH_ACCOUNT=	cppit:jucipp,libclangmm eidheim:tiny_process_library
XGH_PROJECT=	jucipp:jucipp libclangmm:libclangmm tiny-process-library:tiny_process_library
XGH_TAGNAME=	v1.2.3:jucipp 1ef0424:libclangmm 8025c45:tiny_process_library
...
Xpost-extract:
X	@${MV} ${WRKSRC_libclangmm} ${WRKSRC}/libclangmm
X	@${MV} ${WRKSRC_tiny_process_library} ${WRKSRC}/tiny-process-library
X

Better use GH_TUPLE for this.  It's much cleaner and you don't need to
move them in post-extract.

X.include <bsd.port.options.mk>
X
X.if ${PORT_OPTIONS:MDOXYGEN}
XBUILD_DEPENDS+=	doxygen:devel/doxygen
X.endif

This can be replaced by an options helper i.e.
DOXYGEN_BUILD_DEPENDS=	  doxygen:devel/doxygen
Comment 3 Mohammad S. Babaei 2017-04-23 18:34:11 UTC
Created attachment 182023 [details]
editors/jucipp shar file

Thank you so much for the tips. Yes, editors/jucipp makes much more sense than devel/jucipp. I applied all your suggestion and made a new shorter shar file.

Please let me know if anything else should be done.
Comment 4 Mohammad S. Babaei 2017-04-23 18:43:03 UTC
Created attachment 182024 [details]
editors/jucipp shar file

Fixed a typo inside pkg-descr.
Comment 5 Tobias Kortkamp freebsd_committer freebsd_triage 2017-04-24 10:06:59 UTC
Created attachment 182039 [details]
jucipp.diff

Hi Mohammad,

I'm attaching an updated version that builds in Poudriere and passes
portlint.

I've removed the DOXYGEN option entirely since it currently does
nothing.  Building the API documentation seems to require additional
dependencies like e.g. Graphviz and is currently AFAICT not done
automatically by jucipp's build system.

Is building it important?  Do you want to fix it?  Or should I submit
the current version for review and commit it?
Comment 6 Mohammad S. Babaei 2017-04-24 15:15:51 UTC
Thank you so much for the info. In my estimation that's fine for now.

I'll work on those if I'll find some spare time.

Thanks again.
Comment 7 Tobias Kortkamp freebsd_committer freebsd_triage 2017-04-24 15:54:45 UTC
(In reply to Mohammad S. Babaei from comment #6)
Ok :)

I must now wait for mentor approval, but I can hopefully commit this soon.
Comment 8 commit-hook freebsd_committer freebsd_triage 2017-05-30 18:20:35 UTC
A commit references this bug:

Author: tobik
Date: Tue May 30 18:20:18 UTC 2017
New revision: 442110
URL: https://svnweb.freebsd.org/changeset/ports/442110

Log:
  New port: editors/juci

  juCI++, is a platform independent and lightweight C++ IDE designed towards
  libclang with speed, stability, and ease of use in mind.

  It supports syntax highlighting for more than 100 different file types.
  Furthermore, it supports CMake and Meson as build systems. juCI++ implements
  Git support through libgit2. It provides debug integration, both local and
  remote through lldb.

  Other supported featured are: fast C++ autocompletion, tooltips showing type
  information and doxygen documentation, rename refactoring across files,
  automated documentation search, find symbol through Ctags, spell checking
  depending on file context, runnig shell commands within JuCi++, regex search
  and replace, smart paste, keys and indentation, source minimap, split view,
  full UTF-8 support; just to name a few.

  WWW: https://github.com/cppit/jucipp

  PR:		215878
  Submitted by:	Mohammad S. Babaei <info@babaei.net>
  Approved by:	lme (mentor)
  Differential Revision:	https://reviews.freebsd.org/D10479

Changes:
  head/editors/Makefile
  head/editors/jucipp/
  head/editors/jucipp/Makefile
  head/editors/jucipp/distinfo
  head/editors/jucipp/pkg-descr
Comment 9 Tobias Kortkamp freebsd_committer freebsd_triage 2017-05-30 18:22:56 UTC
Well it only took a month... :) Thanks for being so patient.