kaochen / KingsAndShips

A defense Tower game (Work In Progess) (C++/SDL2)
GNU General Public License v3.0
7 stars 1 forks source link

Can't build on debian 11 #1

Open Daguhh opened 3 years ago

Daguhh commented 3 years ago

La commande ninja échoue sur debian 11, et semble indiquer une dépreciation quelconque... ('j'y connais rien)

cmake -G "Ninja" ..

-- The C compiler identification is GNU 10.2.1
-- The CXX compiler identification is GNU 10.2.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE  
-- Found SDL2: /usr/lib/x86_64-linux-gnu/libSDL2main.a;/usr/lib/x86_64-linux-gnu/libSDL2.so;-lpthread  
-- Found SDL2_image: /usr/lib/x86_64-linux-gnu/libSDL2_image.so  
-- Found SDL2_ttf: /usr/lib/x86_64-linux-gnu/libSDL2_ttf.so (found version "2.0.15") 
CMake Warning (dev) at /usr/share/cmake-3.18/Modules/FindPackageHandleStandardArgs.cmake:273 (message):
  The package name passed to `find_package_handle_standard_args` (PkgConfig)
  does not match the name of the calling package (LibXML++).  This can lead
  to problems in calling code that expects `find_package` result variables
  (e.g., `_FOUND`) to follow a certain pattern.
Call Stack (most recent call first):
  /usr/share/cmake-3.18/Modules/FindPkgConfig.cmake:59 (find_package_handle_standard_args)
  cmake/Modules/FindLibXML++.cmake:10 (include)
  CMakeLists.txt:103 (find_package)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.2") 
-- Checking for module 'libxml++-2.6'
--   Found libxml++-2.6, version 2.40.1
-- Found LibXML++: /usr/lib/x86_64-linux-gnu/libxml++-2.6.so  
-- Configuring done
-- Generating done
-- Build files have been written to: /home/david/Programmation/Downloaded_Programs/KingsAndShips/bin
ninja

[22/33] Building CXX object CMakeFiles/kingsandships.dir/src/level/boat.cpp.o
../src/level/boat.cpp: In member function ‘virtual void C_Boat::move()’:
../src/level/boat.cpp:127:14: warning: implicitly-declared ‘constexpr C_Coord& C_Coord::operator=(const C_Coord&)’ is deprecated [-Wdeprecated-copy]
  127 |    m_coord = next;
      |              ^~~~
In file included from ../src/level/gameUnits.h:30,
                 from ../src/level/shooter.h:25,
                 from ../src/level/boat.h:25,
                 from ../src/level/boat.cpp:18:
../src/level/../coord.h:33:2: note: because ‘C_Coord’ has user-provided ‘C_Coord::C_Coord(const C_Coord&)’
   33 |  C_Coord(const C_Coord &a);
      |  ^~~~~~~
[33/33] Linking CXX executable kingsandships
ninja --version
1.10.1

cmake --version
cmake version 3.18.4

lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 11 (bullseye)
Release:    11
Codename:   bullseye
kaochen commented 3 years ago

Bonjour, Il ne me semble pas y avoir d'échec. Ceux sont juste des alertes lors de la compilation pour le développeur. L'information est intéressante, je vais regarder comment enlever ce Warning autours de la LibXML++.

Pareil pour la commande ninja, ceux sont des suggestions pour moi. Je ne les ai pas caché pour ne pas les oublier. Normalement, si tu lances : ls -l dans le dossier bin tu devrais voir le fichier exécutable: -rwxrwxr-x 1 kao kao 6113000 mai 31 10:37 kingsandships

Tu peux le lancer depuis le dossier ./bin/ avec ./kingsandships Tu peux aussi passer à l'étape création de paquet avec cpack.

N’hésite pas à me dire si c'est bon pour la suite. Cordialement, Kao

Daguhh commented 3 years ago

Ok, oui, j'ai bien réussi à lancer le jeu avec la commande ./kingsandships.

Pour la suite de la création du paquet, la commande cpack tente la construction de tout les paquets, ce qui peut-être bloquant.

cpack
CPack: Create package using RPM
CPack: Install projects
CPack: - Install project: kingsandships []
CPack: Create package
CMake Error at /usr/share/cmake-3.18/Modules/Internal/CPack/CPackRPM.cmake:774 (message):
  RPM package requires rpmbuild executable
Call Stack (most recent call first):
  /usr/share/cmake-3.18/Modules/Internal/CPack/CPackRPM.cmake:1887 (cpack_rpm_generate_package)

CPack Error: Error while execution CPackRPM.cmake
CPack Error: Problem compressing the directory
CPack Error: Error when generating package: kingsandships

Peut-être préciser les commandes dans la doc? cpack -G DEB

kaochen commented 3 years ago

J'ai corrigé le warning de compilation pour le fichier boat.cpp. (git pull pour le récupérer)

Pour cpack, il manque le paquet rpm :

sudo apt install rpm

Je l'ai ajouté dans le README un peu tardivement. Mais je ne suis pas fan de fabriquer un rpm depuis un Debian, sur un autre projet j'ai eu des soucis. Notamment parce-que la plupart du temps les dépendances sont plus anciennes sur les OS issus de Red-Hat.

Il faut que je sépare la création du paquet. Une machine à base de Red-Hat fabrique le rpm, une machine de type Debian les deb. Ou avec l'option -G DEB comme tu le suggères.

kaochen commented 3 years ago

J'ai ajouté l'option -G DEB dans le README https://github.com/kaochen/KingsAndShips/commit/34d51921c57976e7371c6665850da24c796c7d39 J'ai commencé à travailler sur le dossier Debian qui permettra de fabriquer le Deb selon la méthode officielle. Si le jeu est suffisamment aboutie on pourra peut-être l'uploader dans les dépots Debian.

Pour le Warning de cmake, il faut que je fasse encore des tests.