Page 1 of 2

Codelite on RPi4/Ubuntu

Posted: Sun Sep 27, 2020 11:49 pm
by dinabandhu
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".

Re: Codelite on RPi4/Ubuntu

Posted: Mon Sep 28, 2020 1:02 am
by DavidGH
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

Re: Codelite on RPi4/Ubuntu

Posted: Mon Sep 28, 2020 11:14 am
by dinabandhu
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

Re: Codelite on RPi4/Ubuntu

Posted: Mon Sep 28, 2020 1:27 pm
by DavidGH
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)

Re: Codelite on RPi4/Ubuntu

Posted: Mon Sep 28, 2020 4:07 pm
by dinabandhu
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

Re: Codelite on RPi4/Ubuntu

Posted: Mon Sep 28, 2020 5:29 pm
by DavidGH
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.

Re: Codelite on RPi4/Ubuntu

Posted: Tue Sep 29, 2020 12:30 am
by DavidGH
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.

Re: Codelite on RPi4/Ubuntu

Posted: Tue Sep 29, 2020 10:17 pm
by dinabandhu
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

Re: Codelite on RPi4/Ubuntu

Posted: Wed Sep 30, 2020 7:40 pm
by DavidGH
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.

Re: Codelite on RPi4/Ubuntu

Posted: Wed Sep 30, 2020 9:21 pm
by dinabandhu
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