diff --git a/CMakeLists_skill.txt b/CMakeLists_skill.txt new file mode 100644 index 0000000..287edd5 --- /dev/null +++ b/CMakeLists_skill.txt @@ -0,0 +1,47 @@ +cmake_minimum_required(VERSION 3.9) +project(skill_cpp_common) + +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -pedantic -fPIC") + + +################################ +# Build common lib +################################ + +file(GLOB_RECURSE SOURCE_FILES LIST_DIRECTORIES false skill/*.cpp) + +# The resulting library to be used by generated code +ADD_LIBRARY(skill_cpp_common STATIC ${SOURCE_FILES}) + +################################ +# GTest +################################ +ADD_SUBDIRECTORY(lib/gtest) +enable_testing() +include_directories(${gtest_SOURCE_DIR}/include ${gtest_SOURCE_DIR}) + + +################################ +# OpenMP +################################ + +find_package(OpenMP) +if (OPENMP_FOUND) + set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}") + set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") +endif() + + +################################ +# Unit Tests +################################ + +file(GLOB_RECURSE TEST_FILES LIST_DIRECTORIES false test/*.cpp) + +add_executable(runTests ${SOURCE_FILES} ${TEST_FILES}) + +# Link test executable against gtest & gtest_main +target_link_libraries(runTests gtest gtest_main) +add_test(runTests runTests) + +set_property(TARGET runTests PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE) diff --git a/README.md b/README.md index 4fd4f24..a978254 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,9 @@ ## Flatpak way 1. install flatpak and flatpak-builder -2. add flathub to the (user) remotes -3. Build with ```flatpak-builder --user --install --install-deps-from=flathub sirEdit/de.marko10-000.sirEdit.json``` +2. add flathub to the (user) remotes `flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo` +3. Build with `flatpak-builder --user --force-clean --install --install-deps-from=flathub sirEdit/de.marko10-000.sirEdit.json` + Be careful, `` and the current path should **NOT** be in the directory of the git. 4. Run the programm with ```flatpak run de.marko10_000.sirEdit``` ## Normal build way diff --git a/de.marko10-000.sirEdit.json b/de.marko10-000.sirEdit.json index 97b9d69..d6e804b 100644 --- a/de.marko10-000.sirEdit.json +++ b/de.marko10-000.sirEdit.json @@ -6,14 +6,14 @@ "command": "/app/bin/sirEdit", "writable-sdk": true, "finish-args": [ - "--require-version=1.0.0", - "--device=dri", - "--share=ipc", - "--socket=x11", - "--socket=wayland", - "--talk-name=org.gtk.vfs.*", - "--talk-name=org.gnome.SettingsDaemon.Color", - "--own-name=de.marko10-000.sirEdit" + "--require-version=1.0.0", + "--device=dri", + "--share=ipc", + "--socket=x11", + "--socket=wayland", + "--talk-name=org.gtk.vfs.*", + "--talk-name=org.gnome.SettingsDaemon.Color", + "--own-name=de.marko10-000.sirEdit" ], "modules": [ { @@ -159,18 +159,53 @@ ] }, { - "name": "sirEdit", - "buildsystem": "meson-ninja", + "name": "gtest", "sources": [ { - "type": "file", + "type": "archive", + "url": "https://github.com/google/googletest/archive/release-1.8.1.tar.gz", + "sha256": "9bf1fe5182a604b4135edc1a425ae356c9ad15e9b23f9f12a02e80184c3a249c" + } + ], + "buildsystem": "cmake-ninja" + }, + { + "name": "pegtl", + "sources": [ + { + "type": "archive", + "url": "https://github.com/taocpp/PEGTL/archive/2.8.0.tar.gz", + "sha256": "655197f9ff543fb6319cec9b86bb34147dd54c42dde78b89ff93d15c762d5f73" + } + ], + "buildsystem": "cmake-ninja" + }, + { + "name": "sirEdit", + "buildsystem": "meson", + "sources": [ + { + "type": "dir", "path": "." }, { "type": "shell", "commands": [ "ln -s /app/lib/libgtkmm-3.0.a /usr/lib/libgtkmm-3.0.a", - "ls -la /usr/lib/libgtkmm-3.0.a" + "ls -la /usr/lib/libgtkmm-3.0.a", + "rm -rf subprojects/cppCommon" + ] + }, + { + "type": "git", + "url": "https://github.com/skill-lang/cppCommon", + "dest": "subprojects/cppCommon" + }, + { + "type": "shell", + "commands": [ + "cp -fv CMakeLists_skill.txt subprojects/cppCommon/CMakeLists.txt", + "java -jar data/codegen.jar sirSpec/sir.skill -L cpp --package sir -o sir" ] } ]