From 0e5302468142a01d00ee7831abcb5f6c07743193 Mon Sep 17 00:00:00 2001 From: Otto Naderer Date: Fri, 12 Aug 2022 00:37:48 +0200 Subject: [PATCH 1/4] transition to cmake, caudio build mods --- CMakeLists.txt | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 13 ++++-------- 2 files changed, 61 insertions(+), 9 deletions(-) create mode 100644 CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..333c255 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,57 @@ +# cmake for tes, ottona, 2022-03-09 + + +cmake_minimum_required(VERSION 3.10) + +set(FS_TARGET flasim) + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_CURRENT_LIST_DIR}/lib") +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_LIST_DIR}/bin") +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_LIST_DIR}/bin") +set(LIBRARY_OUTPUT_DIRECTORY ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}) +set(FS_EXT_DIR "${CMAKE_CURRENT_LIST_DIR}/ext") + +set(FS_SRC_DIR "${CMAKE_CURRENT_LIST_DIR}/src") + +#caudio stuff +option(CAUDIO_STATIC on) +set(CAUDIO_TARGET cAudio) +set(CAUDIO_DIR ${FS_EXT_DIR}/cAudio) +set(CAUDIO_INC_DIR ${FS_EXT_DIR}/cAudio/cAudio/include) +add_subdirectory(${CAUDIO_DIR}) + + +#irrlicht stuff +set(IRRLICHT_INC_DIR /usr/include/irrlicht) +set(IRRLICHT_TARGET Irrlicht) + +project(${FS_TARGET}) + +add_executable(flasim + ${FS_SRC_DIR}/Aircraft.cpp + ${FS_SRC_DIR}/Aircraft.hpp + ${FS_SRC_DIR}/Dispatcher.cpp + ${FS_SRC_DIR}/Dispatcher.hpp + ${FS_SRC_DIR}/FireUnit.cpp + ${FS_SRC_DIR}/FireUnit.hpp + ${FS_SRC_DIR}/FlaSimApp.cpp + ${FS_SRC_DIR}/FlaSimApp.hpp + ${FS_SRC_DIR}/Globals.cpp + ${FS_SRC_DIR}/Globals.hpp + ${FS_SRC_DIR}/main.cpp + ${FS_SRC_DIR}/TurretCamAnimator.cpp + ${FS_SRC_DIR}/TurretCamAnimator.hpp + ) + +target_include_directories(${FS_TARGET} PRIVATE ${IRRLICHT_INC_DIR} ${CAUDIO_INC_DIR} ${CMAKE_BINARY_DIR}/include) #last is needed for caudio + +target_link_libraries(${FS_TARGET} + ${IRRLICHT_TARGET} + ) + + +target_link_libraries(${FS_TARGET} ${CAUDIO_TARGET} ${IRRLICHT_TARGET}) + diff --git a/README.md b/README.md index 163ec10..7ae00e1 100644 --- a/README.md +++ b/README.md @@ -14,18 +14,13 @@ About the visual content shown in the game: I did some parts myself (cannon mode ## Building flasim -Currently only Linux works, should have a windows buildability in a couple of days. -The game is written in QtCreator and hence uses the qmake build system. You should have gcc, qmake, irrlicht and OpenAL installed and handy. - -### Prerequirements +Currently only *Linux* works, should have a Windows buildability *in a couple of days* (yea, sure). +The game uses the CMake build system. Make sure you have GCC, Irrlicht and OpenAL available on your system. 1. Fetch the submodules. -1. `cd` into `ext/cAudio` and issue `cmake -DCAUDIO_BUILD_EAX_PLUGIN=ON -DCAUDIO_BUILD_MP3DECODER_PLUGIN=OFF -DCAUDIO_ENABLE_OGG=OFF -DCAUDIO_BUILD_SAMPLES=OFF -DCAUDIO_DEPENDENCIES_DIR=Dependencies64 -DCAUDIO_STATIC=ON` -1. `make` cAudio +1. Open `ext/cAudio/CMakeLists.txt` and head to line 29 and 30. Replace `${CMAKE_PROJECT_NAME}` by the word `cAudio`. +1. CMake & build *flasim* -### Build flasim - -`cd` to the `prj` folder and run qmake to get a Makefile out of `flasim.pro`. Build the game using `make`. Done. Questions? Reach me at otto@socialnerds.org From a00480f26e727c0c58223dba34fa779f37986988 Mon Sep 17 00:00:00 2001 From: Otto Naderer Date: Fri, 12 Aug 2022 00:39:09 +0200 Subject: [PATCH 2/4] removed old qmake prj --- prj/flasim.pro | 31 ------------------------------- 1 file changed, 31 deletions(-) delete mode 100644 prj/flasim.pro diff --git a/prj/flasim.pro b/prj/flasim.pro deleted file mode 100644 index 4d45bc0..0000000 --- a/prj/flasim.pro +++ /dev/null @@ -1,31 +0,0 @@ -QT -= core gui - -CONFIG += debug_and_release -Release:TARGET = flasim -Debug:TARGET = flasimD -TEMPLATE = app - -unix:INCLUDEPATH += /usr/include/irrlicht -INCLUDEPATH += ../ext/cAudio/cAudio/include ../ext/cAudio/include - -unix:LIBS += -L../ext/cAudio/cAudio -unix:LIBS += -lIrrlicht -lopenal -lcAudio - -DESTDIR = ../bin - -HEADERS += \ - ../src/FlaSimApp.hpp \ - ../src/FireUnit.hpp \ - ../src/Globals.hpp \ - ../src/TurretCamAnimator.hpp \ - ../src/Aircraft.hpp \ - ../src/Dispatcher.hpp - -SOURCES += \ - ../src/FlaSimApp.cpp \ - ../src/main.cpp \ - ../src/FireUnit.cpp \ - ../src/Globals.cpp \ - ../src/TurretCamAnimator.cpp \ - ../src/Aircraft.cpp \ - ../src/Dispatcher.cpp From 2626a16377c59d60d0ecfec06f5453f9007c5471 Mon Sep 17 00:00:00 2001 From: ottona Date: Fri, 12 Aug 2022 08:57:30 +0200 Subject: [PATCH 3/4] updated readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7ae00e1..13db96f 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ Currently only *Linux* works, should have a Windows buildability *in a couple of The game uses the CMake build system. Make sure you have GCC, Irrlicht and OpenAL available on your system. 1. Fetch the submodules. -1. Open `ext/cAudio/CMakeLists.txt` and head to line 29 and 30. Replace `${CMAKE_PROJECT_NAME}` by the word `cAudio`. +1. Very recent versions of CMake have issues with the dated config in *cAudio*. If it complains about *flasim* not being defined inside *cAudio* open `ext/cAudio/CMakeLists.txt` and head to line 29 and 30. Replace `${CMAKE_PROJECT_NAME}` by the word `cAudio`. 1. CMake & build *flasim* From bba4a3806ca4b8df032cc195ed4d580d191f9625 Mon Sep 17 00:00:00 2001 From: Otto Naderer Date: Fri, 12 Aug 2022 10:19:34 +0200 Subject: [PATCH 4/4] cmake build relocatable --- CMakeLists.txt | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 333c255..46f36f4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,7 +21,7 @@ option(CAUDIO_STATIC on) set(CAUDIO_TARGET cAudio) set(CAUDIO_DIR ${FS_EXT_DIR}/cAudio) set(CAUDIO_INC_DIR ${FS_EXT_DIR}/cAudio/cAudio/include) -add_subdirectory(${CAUDIO_DIR}) +add_subdirectory(${CAUDIO_DIR} EXCLUDE_FROM_ALL) #irrlicht stuff @@ -47,11 +47,10 @@ add_executable(flasim ) target_include_directories(${FS_TARGET} PRIVATE ${IRRLICHT_INC_DIR} ${CAUDIO_INC_DIR} ${CMAKE_BINARY_DIR}/include) #last is needed for caudio - -target_link_libraries(${FS_TARGET} - ${IRRLICHT_TARGET} - ) +if(UNIX) # relocatable linking for unixoids + set_target_properties(flasim PROPERTIES LINK_FLAGS "-Wl,-rpath,$ORIGIN/") +endif() target_link_libraries(${FS_TARGET} ${CAUDIO_TARGET} ${IRRLICHT_TARGET})