Codelite on RPi4/Ubuntu

CodeLite installation/troubleshooting forum
dinabandhu
CodeLite Enthusiast
Posts: 10
Joined: Sun Sep 27, 2020 11:38 pm
Genuine User: Yes
IDE Question: C++
Contact:

Codelite on RPi4/Ubuntu

Post by dinabandhu » Sun Sep 27, 2020 11:49 pm

Hello,

I am trying to build codelite 14 from sources on a RPi4 running 64 bit Ubuntu 18.04 LTS. I followed the instructions given in the wiki (https://wiki.codelite.org/pmwiki.php/Developers/Linux) . I installed the listed packages, built and installed wxWidgets with gtk3 and tried building codelite.

However, cmake is giving error. The full log is below. I would appreciate any help very much.

cmake -DCMAKE_BUILD_TYPE=Release .. -DCOPY_WX_LIBS=1
-- The C compiler identification is GNU 7.5.0
-- The CXX compiler identification is GNU 7.5.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- SQLITE3_INCLUDE_DIR: /usr/include
-- SQLITE3_LIBRARY: /usr/lib/aarch64-linux-gnu/libsqlite3.so
-- BUILD_DIRECTORY is set to /home/dev/codelite2/codelite-14.0/build-release
-- OS name Linux
-- wx-config used is: /usr/local/bin/wx-config
-- wxWidgets version is: 3.1.4
-- gtk version is: 3
-- LIBSSH_LIB is set to LIBSSH_LIB-NOTFOUND
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1")
-- Checking for module 'gtk+-3.0'
-- Found gtk+-3.0, version 3.22.30
-- Checking for module 'gdk-pixbuf-2.0'
-- Found gdk-pixbuf-2.0, version 2.36.11
-- Checking for one of the modules 'glib-2.0'
-- Found GLib2: glib-2.0 /usr/include/glib-2.0;/usr/lib/aarch64-linux-gnu/glib-2.0/include
-- Looking for include file glib/gregex.h
-- Looking for include file glib/gregex.h - not found
-- Checking for module 'pango'
-- Found pango, version 1.40.14
-- Checking for module 'atk'
-- Found atk, version 2.28.1
-- Could NOT find GTK3 (missing: GTK3_LIBRARY)
-- PLUGINS_DIR is set to /usr/lib/x86_64-linux-gnu/codelite
-- Using wxAuiNotebook class is disabled
-- Building in Release mode
-- CMAKE_INSTALL_DO_STRIP is TRUE
-- Executables will be written into /home/dev/codelite2/codelite-14.0/build-release/bin
-- Shared Objects will be written into /home/dev/codelite2/codelite-14.0/build-release/lib
-- Adding -DNDEBUG to definitions
-- CPACK_SYSTEM_NAME ubuntu-bionic-aarch64
-- OS_CODENAME is set to bionic
-- ARCH 64
-- ARCH_NAME x86_64
-- USE_SFTP is set to 1
-- Found wxWidgets: -L/usr/local/lib;-pthread;;;-lwx_gtk3u_core-3.1;-lwx_baseu-3.1 (found version "3.1.4")
-- Found wxWidgets: -L/usr/local/lib;-pthread;;;-lwx_gtk3u_xrc-3.1;-lwx_gtk3u_html-3.1;-lwx_gtk3u_qa-3.1;-lwx_gtk3u_core-3.1;-lwx_baseu_xml-3.1;-lwx_baseu_net-3.1;-lwx_baseu-3.1 (found version "3.1.4")
-- Found wxWidgets: -L/usr/local/lib;-pthread;;;-lwx_gtk3u_stc-3.1;-lwx_gtk3u_xrc-3.1;-lwx_gtk3u_html-3.1;-lwx_gtk3u_qa-3.1;-lwx_gtk3u_core-3.1;-lwx_baseu_xml-3.1;-lwx_baseu_net-3.1;-lwx_baseu-3.1 (found version "3.1.4")
-- Flex support is disabled
-- Found wxWidgets: -L/usr/local/lib;-pthread;;;-lwx_gtk3u_aui-3.1;-lwx_gtk3u_propgrid-3.1;-lwx_gtk3u_stc-3.1;-lwx_gtk3u_ribbon-3.1;-lwx_gtk3u_richtext-3.1;-lwx_gtk3u_xrc-3.1;-lwx_gtk3u_html-3.1;-lwx_gtk3u_qa-3.1;-lwx_gtk3u_core-3.1;-lwx_baseu_xml-3.1;-lwx_baseu_net-3.1;-lwx_baseu-3.1 (found version "3.1.4")
-- Could NOT find GTK3 (missing: GTK3_LIBRARY)
-- Could NOT find GTK3 (missing: GTK3_LIBRARY)
**
** NOTICE ** Could not locate libhunspell. SpellChecker plugin will not be build
** NOTICE ** Try installing libhunspell-dev package
**
**** NOTICE: lldb is not available. You could try installing the lldb-3.4-dev (or equivalent) package
-- Internal Web Browser is disabled
-- Found wxWidgets: -L/usr/local/lib;-pthread;;;-lwx_gtk3u_aui-3.1;-lwx_baseu-3.1;-lwx_gtk3u_core-3.1;-lwx_gtk3u_html-3.1;-lwx_gtk3u_propgrid-3.1;-lwx_baseu_xml-3.1;-lwx_gtk3u_xrc-3.1;-lwx_baseu_net-3.1;-lwx_gtk3u_stc-3.1 (found version "3.1.4")
-- CL_SRC_ROOT is set to /home/dev/codelite2/codelite-14.0
-- Found wxWidgets: -L/usr/local/lib;-pthread;;;-lwx_gtk3u_aui-3.1;-lwx_gtk3u_propgrid-3.1;-lwx_gtk3u_stc-3.1;-lwx_gtk3u_ribbon-3.1;-lwx_gtk3u_richtext-3.1;-lwx_gtk3u_xrc-3.1;-lwx_gtk3u_html-3.1;-lwx_gtk3u_qa-3.1;-lwx_gtk3u_core-3.1;-lwx_baseu_xml-3.1;-lwx_baseu_net-3.1;-lwx_baseu-3.1 (found version "3.1.4")
-- Adding Valgrind Plugin
-- Building wxCrafter as codelite plugin
-- Generating makefile for wxCrafter
-- Found wxWidgets: -L/usr/local/lib;-pthread;;;-lwx_gtk3u_aui-3.1;-lwx_gtk3u_propgrid-3.1;-lwx_gtk3u_stc-3.1;-lwx_gtk3u_richtext-3.1;-lwx_gtk3u_ribbon-3.1;-lwx_gtk3u_xrc-3.1;-lwx_gtk3u_html-3.1;-lwx_gtk3u_qa-3.1;-lwx_gtk3u_core-3.1;-lwx_baseu_xml-3.1;-lwx_baseu_net-3.1;-lwx_baseu-3.1 (found version "3.1.4")
-- Found wxWidgets: -L/usr/local/lib;-pthread;;;-lwx_gtk3u_aui-3.1;-lwx_gtk3u_propgrid-3.1;-lwx_gtk3u_stc-3.1;-lwx_gtk3u_ribbon-3.1;-lwx_gtk3u_richtext-3.1;-lwx_gtk3u_xrc-3.1;-lwx_gtk3u_html-3.1;-lwx_gtk3u_qa-3.1;-lwx_gtk3u_core-3.1;-lwx_baseu_xml-3.1;-lwx_baseu_net-3.1;-lwx_baseu-3.1 (found version "3.1.4")
-- wxlibsdir is: /usr/local/lib
-- will copy
-- Found wxWidgets: -L/usr/local/lib;-pthread;;;-lwx_gtk3u_core-3.1;-lwx_baseu-3.1 (found version "3.1.4")
-- Found wxWidgets: -L/usr/local/lib;-pthread;;;-lwx_gtk3u_stc-3.1;-lwx_gtk3u_aui-3.1;-lwx_gtk3u_xrc-3.1;-lwx_gtk3u_html-3.1;-lwx_gtk3u_qa-3.1;-lwx_gtk3u_core-3.1;-lwx_baseu_xml-3.1;-lwx_baseu_net-3.1;-lwx_baseu-3.1 (found version "3.1.4")
-- Found wxWidgets: -L/usr/local/lib;-pthread;;;-lwx_gtk3u_core-3.1;-lwx_baseu-3.1 (found version "3.1.4")
-- Release build, will not include UnitTest build
-- Including plugin.cmake module
-- CMAKE_SOURCE_DIR is set to /home/dev/codelite2/codelite-14.0
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
CAIRO_LIBRARY
linked by target "plugin" in directory /home/dev/codelite2/codelite-14.0/Plugin
linked by target "DatabaseExplorer" in directory /home/dev/codelite2/codelite-14.0/DatabaseExplorer
linked by target "codelite" in directory /home/dev/codelite2/codelite-14.0/LiteEditor
GDK3_LIBRARY
linked by target "plugin" in directory /home/dev/codelite2/codelite-14.0/Plugin
linked by target "DatabaseExplorer" in directory /home/dev/codelite2/codelite-14.0/DatabaseExplorer
linked by target "codelite" in directory /home/dev/codelite2/codelite-14.0/LiteEditor
GTK3_LIBRARY (ADVANCED)
linked by target "plugin" in directory /home/dev/codelite2/codelite-14.0/Plugin
linked by target "DatabaseExplorer" in directory /home/dev/codelite2/codelite-14.0/DatabaseExplorer
linked by target "codelite" in directory /home/dev/codelite2/codelite-14.0/LiteEditor
LIBSSH_LIB
linked by target "libcodelite" in directory /home/dev/codelite2/codelite-14.0/CodeLite

-- Configuring incomplete, errors occurred!
See also "/home/dev/codelite2/codelite-14.0/build-release/CMakeFiles/CMakeOutput.log".
See also "/home/dev/codelite2/codelite-14.0/build-release/CMakeFiles/CMakeError.log".

DavidGH
CodeLite Plugin
Posts: 675
Joined: Wed Sep 03, 2008 7:26 pm
Contact:

Re: Codelite on RPi4/Ubuntu

Post by DavidGH » Mon Sep 28, 2020 1:02 am

Hi,
-- Could NOT find GTK3 (missing: GTK3_LIBRARY)
Are you certain you have libgtk-3-dev (and its dependencies) installed? That's what such configure errors usually point to.

The other missing items are less important: you can certainly build CodeLite without hunspell (but it's easy enough to apt install libhunspell-dev). And if your build does require libssh, bionic will need (iiuc) one of libssh-dev or libssh-gcrypt-dev.

Regards,

David

dinabandhu
CodeLite Enthusiast
Posts: 10
Joined: Sun Sep 27, 2020 11:38 pm
Genuine User: Yes
IDE Question: C++
Contact:

Re: Codelite on RPi4/Ubuntu

Post by dinabandhu » Mon Sep 28, 2020 11:14 am

Hi Dave,

Thanks a lot for your reply.
DavidGH wrote:
Mon Sep 28, 2020 1:02 am
Are you certain you have libgtk-3-dev (and its dependencies) installed? That's what such configure errors usually point to
Yes. Looks like it already there. This is what I get when I try to install again

+++++++++++++++++++++++++++++++++++
dev@ubuntu:~$ sudo apt install libgtk-3-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
libgtk-3-dev is already the newest version (3.22.30-1ubuntu4).
The following package was automatically installed and is no longer required:
linux-raspi-5.4-headers-5.4.0-1015
Use 'sudo apt autoremove' to remove it.
0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
++++++++++++++++++++++++++++++++++++++++

Anyway, I will try a fresh install of ubuntu 18.04 and try again. May be something is broken in my installation. I will try the others once I can get the GTK3 resolved.

Thanks & regards,
Dinabandhu

DavidGH
CodeLite Plugin
Posts: 675
Joined: Wed Sep 03, 2008 7:26 pm
Contact:

Re: Codelite on RPi4/Ubuntu

Post by DavidGH » Mon Sep 28, 2020 1:27 pm

Strange!

You could also try looking at the output of doing, in a terminal:
pkg-config --cflags gtk+-3.0
pkg-config --libs gtk+-3.0

and compare with the output of:
wx-config --cxxflags
wx-config --libs

It's also a strange error message "Could NOT find GTK3 (missing: GTK3_LIBRARY)". I've not seen that in x86 installs, and there are only 2 elderly google hits for it.
If it persists, perhaps you could insert some debugging code into the relevant cmake module, <codelite-sourcedir>/cmake/Modules/FindGTK3.cmake
and its official cmake calls: it does e.g. find_library(GTK3_LIBRARY NAMES gtk-3)

dinabandhu
CodeLite Enthusiast
Posts: 10
Joined: Sun Sep 27, 2020 11:38 pm
Genuine User: Yes
IDE Question: C++
Contact:

Re: Codelite on RPi4/Ubuntu

Post by dinabandhu » Mon Sep 28, 2020 4:07 pm

Hello David,

Thanks again for your help.

I tried a fresh install but no luck ... same errors. I am attaching both the bash history (all executed command since installation) and the error on cmake.

I tried the outputs you wanted me to check but I am not sure what I should look. The output is below ...

++++++++++++++++++++++++++++++++++++++
ubuntu@ubuntu:~/dev/codelite/build-release$ pkg-config --cflags gtk+-3.0
-pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/aarch64-linux-gnu/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/aarch64-linux-gnu/glib-2.0/include
ubuntu@ubuntu:~/dev/codelite/build-release$ pkg-config --libs gtk+-3.0
-lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0
ubuntu@ubuntu:~/dev/codelite/build-release$ wx-config --cxxflags
-I/usr/local/lib/wx/include/gtk3-unicode-3.1 -I/usr/local/include/wx-3.1 -D_FILE_OFFSET_BITS=64 -DwxDEBUG_LEVEL=0 -DWXUSINGDLL -D__WXGTK__ -pthread
ubuntu@ubuntu:~/dev/codelite/build-release$ wx-config --libs
-L/usr/local/lib -pthread -lwx_gtk3u_xrc-3.1 -lwx_gtk3u_html-3.1 -lwx_gtk3u_qa-3.1 -lwx_gtk3u_core-3.1 -lwx_baseu_xml-3.1 -lwx_baseu_net-3.1 -lwx_baseu-3.1

++++++++++++++++++++++++++++++++++++++++++++++


I will try my best debugging cmake scripts but I am not familiar with cmake ... any help that you can give me would be great.

Regards,
Dinabandhu
You do not have the required permissions to view the files attached to this post.

DavidGH
CodeLite Plugin
Posts: 675
Joined: Wed Sep 03, 2008 7:26 pm
Contact:

Re: Codelite on RPi4/Ubuntu

Post by DavidGH » Mon Sep 28, 2020 5:29 pm

I don't see anything helpful in those outputs :(
However I notice that you're (still) using the wxWidgets from eranif's github. That's no longer necessary, and it might be worth trying with the latest official wx release, wx3.1.4.
I am not familiar with cmake
I'm more familiar than I'd like to be, but certainly no expert.
First:
cmake -DCMAKE_BUILD_TYPE=Release .. -DCOPY_WX_LIBS=1
I suggest you insert:
VERBOSE=1
into that line.

The next thing is to look at the content of /home/ubuntu/dev/codelite/build-release/CMakeFiles/CMakeOutput.log and *Error.log in case they actually tell us what's wrong ;)

My other specific suggestion is to insert into <codelite-sourcedir>/CMakeLists.txt some lines similar to:
message( "-- FOO is set to ${NAME_OF_VARIABLE_FOO}")
wherever it seems appropriate. The first place to try is just after the
find_library(GTK3_LIBRARY NAMES gtk-3)
call in <codelite-sourcedir>/cmake/Modules/FindGTK3.cmake.

Failing all else, look at some of the suggestions from googling 'CMake debug output' e.g. https://stackoverflow.com/questions/228 ... -txt-files. Or, try building wxWidgets and then CodeLite against gtk+2 instead.

DavidGH
CodeLite Plugin
Posts: 675
Joined: Wed Sep 03, 2008 7:26 pm
Contact:

Re: Codelite on RPi4/Ubuntu

Post by DavidGH » Tue Sep 29, 2020 12:30 am

And another random suggestion: try setting an environmental variable in your terminal:
CMAKE_PREFIX_PATH=/usr/lib/aarch64-linux-gnu/
That might help find_library to work correctly in the RPi.

dinabandhu
CodeLite Enthusiast
Posts: 10
Joined: Sun Sep 27, 2020 11:38 pm
Genuine User: Yes
IDE Question: C++
Contact:

Re: Codelite on RPi4/Ubuntu

Post by dinabandhu » Tue Sep 29, 2020 10:17 pm

Hi David,

Thanks again for your help. I have managed to build, install and run CodeLite.

Your suggestion of CMAKE_PREFIX_PATH was dot on. With that flag on cmake successfully went through. Make also went fine but I had problems with make install.

Thanks to your earlier pointers, I could debug it a bit and saw that cmake_install.cmake files generated by cmake earlier was trying to install codelite binaries in /usr/lib/x86_64-linux-gnu/codelite/ directory which was failing as there is no /usr/lib/x86_64-linux-gnu in my case.

I initially did not want to try and debug the main CMakeLists.txt and start from beginning (compilation took 3-4 hours), so I just manually modified cmake_install.cmake files and tried make install and it went through. Then I had to manually configure and run ldconfig to get codelite directory in library search path.

Lastly, I took a fresh download of the code to try to debug CMakeLists.txt. I made some changes and cmake worked without even the CMAKE_PREFIX_PATH flag. Generated cmake_install.cmake also look fine. I have not recompiled though.

I am attaching the modified file. The changes are between lines 81-99, 459-460, 484-487. Please let me know what you think.
CMakeLists.txt
Thanks and regards,
Dinabandhu
You do not have the required permissions to view the files attached to this post.

DavidGH
CodeLite Plugin
Posts: 675
Joined: Wed Sep 03, 2008 7:26 pm
Contact:

Re: Codelite on RPi4/Ubuntu

Post by DavidGH » Wed Sep 30, 2020 7:40 pm

Thanks again for your help. I have managed to build, install and run CodeLite.
Great!
I initially did not want to try and debug the main CMakeLists.txt and start from beginning (compilation took 3-4 hours)
I hope you have ccache installed. Over the years it's saved vast amounts of my time/cpu cycles.

Lastly, I took a fresh download of the code to try to debug CMakeLists.txt. I made some changes and cmake worked without even the CMAKE_PREFIX_PATH flag. Generated cmake_install.cmake also look fine.
I see the problem, but I think there's a simpler fix: don't hard-code CMAKE_LIBRARY_ARCHITECTURE at all as it's no longer needed.

Code: Select all

diff --git a/CMakeLists.txt b/CMakeLists.txt
index a69e63be4..789ccb5d6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -81,11 +81,6 @@ endif()
 if( UNIX AND NOT APPLE)
     set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--disable-new-dtags")
     set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--disable-new-dtags")
-    if (CMAKE_SIZEOF_VOID_P EQUAL 8)
-        set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")
-    else()
-        set(CMAKE_LIBRARY_ARCHITECTURE "i386-linux-gnu")
-    endif()
 endif()
 
 if ( UNIX )
That should work as it's what the official debian package does for its builds, which include ARM64. I've tested it successfully here in an i386 virtualbox guest. However I don't have an RPi so I'd be grateful if you'd check it works for you, at least for the initial configure.

dinabandhu
CodeLite Enthusiast
Posts: 10
Joined: Sun Sep 27, 2020 11:38 pm
Genuine User: Yes
IDE Question: C++
Contact:

Re: Codelite on RPi4/Ubuntu

Post by dinabandhu » Wed Sep 30, 2020 9:21 pm

Hi,

It worked for me as well. The configure went through without a problem. The cmake_install files also looks fine. If you want I can try rebuild also in a couple of days and report back.

Thanks for the heads up on ccache. I have not used it before but it does look very interesting.

Thanks and regards,
Dinabandhu

Post Reply