compiling Actiona on alpine linux ( clueless )

Everything related to the development of the software
Post Reply
m1n1m4l
Posts: 2
Joined: 09 May 2022, 13:55

compiling Actiona on alpine linux ( clueless )

Post by m1n1m4l »

Hello all,

i volunteer for a non-profit organization and we have been gladly using this great software without any issues at all on one of our projects. We have been using it under debian. We are migrating to alpine linux using xfce and i although i know how to code, i have no experience of it in linux nor cmake, qmake etc. Building it from source is my only option now. I wish to share the efforts so that others users can benefit from it.

With the help of alpine team on matrix ( irc )
https://app.element.io/#/room/#_oftc_#a ... atrix.org/

They helped this morning with the translation of the dependencies to the list below on alpine:

git
cmake
boost-dev
qt5-qtbase-dev
qt5-qttools-dev
qt5-qtmultimedia-dev
libnotify-dev
opencv-dev
libxtst-dev
qt5-qtx11extras-dev
qt5-qtxmlpatterns-dev
gcc #this one was me!

these dependencies installed perfectly, however i get errors following the build instructions here: https://wiki.actiona.tools/doku.php?id=en:compilation
it does not accept the -r


what it accepts is:

Usage

cmake [options] <path-to-source>
cmake [options] <path-to-existing-build>
cmake [options] -S <path-to-source> -B <path-to-build>

Specify a source directory to (re-)generate a build system for it in the
current working directory. Specify an existing build directory to
re-generate its build system.

Options
-S <path-to-source> = Explicitly specify a source directory.
-B <path-to-build> = Explicitly specify a build directory.
-C <initial-cache> = Pre-load a script to populate the cache.
-D <var>[:<type>]=<value> = Create or update a cmake cache entry.
-U <globbing_expr> = Remove matching entries from CMake cache.
-G <generator-name> = Specify a build system generator.
-T <toolset-name> = Specify toolset name if supported by
generator.
-A <platform-name> = Specify platform name if supported by
generator.
--toolchain <file> = Specify toolchain file
[CMAKE_TOOLCHAIN_FILE].
--install-prefix <directory> = Specify install directory
[CMAKE_INSTALL_PREFIX].
-Wdev = Enable developer warnings.
-Wno-dev = Suppress developer warnings.
-Werror=dev = Make developer warnings errors.
-Wno-error=dev = Make developer warnings not errors.
-Wdeprecated = Enable deprecation warnings.
-Wno-deprecated = Suppress deprecation warnings.
-Werror=deprecated = Make deprecated macro and function warnings
errors.
-Wno-error=deprecated = Make deprecated macro and function warnings
not errors.
--preset <preset>,--preset=<preset>
= Specify a configure preset.
--list-presets = List available presets.
-E = CMake command mode.
-L[A][H] = List non-advanced cached variables.
--build <dir> = Build a CMake-generated project binary tree.
--install <dir> = Install a CMake-generated project binary
tree.
--open <dir> = Open generated project in the associated
application.
-N = View mode only.
-P <file> = Process script mode.
--find-package = Legacy pkg-config like mode. Do not use.
--graphviz=[file] = Generate graphviz of dependencies, see
CMakeGraphVizOptions.cmake for more.
--system-information [file] = Dump information about this system.
--log-level=<ERROR|WARNING|NOTICE|STATUS|VERBOSE|DEBUG|TRACE>
= Set the verbosity of messages from CMake
files. --loglevel is also accepted for
backward compatibility reasons.
--log-context = Prepend log messages with context, if given
--debug-trycompile = Do not delete the try_compile build tree.
Only useful on one try_compile at a time.
--debug-output = Put cmake in a debug mode.
--debug-find = Put cmake find in a debug mode.
--debug-find-pkg=<pkg-name>[,...]
= Limit cmake debug-find to the
comma-separated list of packages
--debug-find-var=<var-name>[,...]
= Limit cmake debug-find to the
comma-separated list of result variables
--trace = Put cmake in trace mode.
--trace-expand = Put cmake in trace mode with variable
expansion.
--trace-format=<human|json-v1>
= Set the output format of the trace.
--trace-source=<file> = Trace only this CMake file/module. Multiple
options allowed.
--trace-redirect=<file> = Redirect trace output to a file instead of
stderr.
--warn-uninitialized = Warn about uninitialized values.
--no-warn-unused-cli = Don't warn about command line options.
--check-system-vars = Find problems with variable usage in system
files.
--profiling-format=<fmt> = Output data for profiling CMake scripts.
Supported formats: google-trace
--profiling-output=<file> = Select an output path for the profiling data
enabled through --profiling-format.
--help,-help,-usage,-h,-H,/? = Print usage information and exit.
--version,-version,/V [<f>] = Print version number and exit.
--help-full [<f>] = Print all help manuals and exit.
--help-manual <man> [<f>] = Print one help manual and exit.
--help-manual-list [<f>] = List help manuals available and exit.
--help-command <cmd> [<f>] = Print help for one command and exit.
--help-command-list [<f>] = List commands with help available and exit.
--help-commands [<f>] = Print cmake-commands manual and exit.
--help-module <mod> [<f>] = Print help for one module and exit.
--help-module-list [<f>] = List modules with help available and exit.
--help-modules [<f>] = Print cmake-modules manual and exit.
--help-policy <cmp> [<f>] = Print help for one policy and exit.
--help-policy-list [<f>] = List policies with help available and exit.
--help-policies [<f>] = Print cmake-policies manual and exit.
--help-property <prop> [<f>] = Print help for one property and exit.
--help-property-list [<f>] = List properties with help available and
exit.
--help-properties [<f>] = Print cmake-properties manual and exit.
--help-variable var [<f>] = Print help for one variable and exit.
--help-variable-list [<f>] = List variables with help available and exit.
--help-variables [<f>] = Print cmake-variables manual and exit.

Generators

The following generators are available on this platform (* marks default):
Green Hills MULTI = Generates Green Hills MULTI files
(experimental, work-in-progress).
* Unix Makefiles = Generates standard UNIX makefiles.
Ninja = Generates build.ninja files.
Ninja Multi-Config = Generates build-<Config>.ninja files.
Watcom WMake = Generates Watcom WMake makefiles.
CodeBlocks - Ninja = Generates CodeBlocks project files.
CodeBlocks - Unix Makefiles = Generates CodeBlocks project files.
CodeLite - Ninja = Generates CodeLite project files.
CodeLite - Unix Makefiles = Generates CodeLite project files.
Eclipse CDT4 - Ninja = Generates Eclipse CDT 4.0 project files.
Eclipse CDT4 - Unix Makefiles= Generates Eclipse CDT 4.0 project files.
Kate - Ninja = Generates Kate project files.
Kate - Unix Makefiles = Generates Kate project files.
Sublime Text 2 - Ninja = Generates Sublime Text 2 project files.
Sublime Text 2 - Unix Makefiles
= Generates Sublime Text 2 project files.


I cloned the repo successfully and I am sure this works, i am just clueless to what to do next, can you help?

tried cmake -A linux ( almost there no? ) :D

Thanks a million in advance!!!
User avatar
Jmgr
Admin
Posts: 1651
Joined: 07 Dec 2005, 15:45
Contact:

Re: compiling Actiona on alpine linux ( clueless )

Post by Jmgr »

Hi,

Actiona has migrated from qmake to cmake recently; I have updated the wiki page: https://wiki.actiona.tools/doku.php?id=en:compilation

Code: Select all

mkdir build && cd build && cmake .. && make
should allow you to build the project if all dependencies have been installed.
"My software never has bugs. It just develops random features."
m1n1m4l
Posts: 2
Joined: 09 May 2022, 13:55

Re: compiling Actiona on alpine linux ( clueless )

Post by m1n1m4l »

thanks,

I am working with baby steps here, so far edited the .github/workflows/linux.yml
like this ( changed install packages and runs on ):

name: Linux-gcc

on: [push]

env:
BUILD_TYPE: Release

jobs:
build:
strategy:
fail-fast: false
matrix:
profile: [ON, OFF]
updater: [ON, OFF]
runs-on: Linux - 5.17.0-rc7-1-asahi - aarch64
#ubuntu-20.04
steps:
- uses: actions/checkout@v2
with:
submodules: recursive

- name: Install packages
run: sudo apk update && sudo apk add cmake gcc boost-dev qt5-qtbase-dev qt5-qttools-dev qt5-qtmultimedia-dev libnotify-dev opencv-dev libxtst-dev qt5-qtx11extras-dev qt5-qtxmlpatterns-dev
#run: sudo apt-get update && sudo apt-get install -y build-essential qtbase5-dev libqt5x11extras5-dev libqt5xmlpatterns5-dev qtscript5-dev qttools5-dev qtmultimedia5-dev qttools5-dev-tools libnotify-dev libopencv-core-dev libopencv-imgproc-dev libxtst-dev qt5-default libopencv-dev libxkbcommon-dev libbluetooth-dev libqt5texttospeech5-dev libudev-dev

- name: Create Build Environment
run: cmake -E make_directory ${{github.workspace}}/build

- name: Configure CMake
shell: bash
working-directory: ${{github.workspace}}/build
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DACT_PROFILE=${{ matrix.profile }} -DACT_UPDATER=${{ matrix.updater }}

- name: Build
working-directory: ${{github.workspace}}/build
shell: bash
run: cmake --build . --config $BUILD_TYPE --parallel 2

- name: Test
working-directory: ${{github.workspace}}/build
shell: bash
run: ctest -C $BUILD_TYPE

------------------------------------------------
and the CMakeLists.txt ( first 3 lines to )

cmake_minimum_required(VERSION 3.10)
set(CMAKE_CXX_COMPILER "/usr/bin/gcc")
project(actiona VERSION 3.10.1 DESCRIPTION "Cross-platform automation tool" LANGUAGES CXX)


and when i do:
cmake .. && make

i get the error
CMake error at CMakeLists.txt:3 (project):
Generator
Unix makefiles
does not support plattform specification but plattform
linux
was specified.

no idea what to do next...

Thanks in advance!
Post Reply