use meson
This commit is contained in:
parent
107633f8ee
commit
aaf6836654
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -1,3 +1,3 @@
|
|||
*.swp
|
||||
*.core
|
||||
/Build/
|
||||
/builddir/
|
||||
|
|
|
@ -1,13 +0,0 @@
|
|||
cmake_minimum_required(VERSION 3.20)
|
||||
project(kappachat LANGUAGES CXX)
|
||||
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
|
||||
find_package(deltachat-core REQUIRED)
|
||||
find_package(Qt6 REQUIRED COMPONENTS Widgets)
|
||||
|
||||
include(AddAutoformatTarget)
|
||||
include(GNUInstallDirs)
|
||||
|
||||
qt_standard_project_setup()
|
||||
|
||||
add_subdirectory(src)
|
2
build.sh
2
build.sh
|
@ -1,2 +0,0 @@
|
|||
[ -f Build/build.ninja ] || cmake -G Ninja -B Build
|
||||
exec ninja -C Build "$@"
|
|
@ -1,28 +0,0 @@
|
|||
find_program(clang-format_EXECUTABLE clang-format)
|
||||
mark_as_advanced(clang-format_EXECUTABLE)
|
||||
|
||||
if(clang-format_EXECUTABLE)
|
||||
add_executable(clang-format IMPORTED)
|
||||
set_target_properties(clang-format PROPERTIES
|
||||
IMPORTED_LOCATION ${clang-format_EXECUTABLE})
|
||||
endif()
|
||||
|
||||
function(add_autoformat_target target)
|
||||
get_target_property(source_dir ${target} SOURCE_DIR)
|
||||
get_target_property(sources ${target} SOURCES)
|
||||
foreach(source ${sources})
|
||||
get_property(generated SOURCE ${source} PROPERTY GENERATED)
|
||||
if(NOT ${generated})
|
||||
list(APPEND non_generated_sources ${source})
|
||||
endif()
|
||||
endforeach()
|
||||
add_custom_target(autoformat_${target}
|
||||
COMMAND clang-format -i -- ${non_generated_sources}
|
||||
WORKING_DIRECTORY ${source_dir}
|
||||
COMMENT "Autoformating sources of target ${target}"
|
||||
VERBATIM)
|
||||
if(NOT TARGET autoformat)
|
||||
add_custom_target(autoformat)
|
||||
endif()
|
||||
add_dependencies(autoformat autoformat_${target})
|
||||
endfunction()
|
|
@ -1,16 +0,0 @@
|
|||
find_path(libdeltachat_INCLUDE_DIR deltachat.h)
|
||||
mark_as_advanced(libdeltachat_INCLUDE_DIR)
|
||||
|
||||
find_library(libdeltachat_LIBRARY deltachat)
|
||||
mark_as_advanced(libdeltachat_LIBRARY)
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(
|
||||
deltachat-core DEFAULT_MSG libdeltachat_LIBRARY libdeltachat_INCLUDE_DIR)
|
||||
|
||||
if(deltachat-core_FOUND AND NOT TARGET deltachat-core::libdeltachat)
|
||||
add_library(deltachat-core::libdeltachat SHARED IMPORTED)
|
||||
set_target_properties(deltachat-core::libdeltachat PROPERTIES
|
||||
IMPORTED_LOCATION ${libdeltachat_LIBRARY}
|
||||
INTERFACE_INCLUDE_DIRECTORIES ${libdeltachat_INCLUDE_DIR})
|
||||
endif()
|
10
meson.build
Normal file
10
meson.build
Normal file
|
@ -0,0 +1,10 @@
|
|||
project('kappachat', 'cpp',
|
||||
license : 'ISC',
|
||||
default_options : ['buildtype=debugoptimized',
|
||||
'warning_level=3',
|
||||
'cpp_std=c++20'])
|
||||
|
||||
deltachat_dep = dependency('deltachat')
|
||||
qt6_dep = dependency('qt6', modules: ['Core', 'Widgets'])
|
||||
|
||||
subdir('src')
|
|
@ -1,30 +0,0 @@
|
|||
add_executable(${PROJECT_NAME}
|
||||
deltachat_context.cc
|
||||
deltachat_context.hh
|
||||
login_dialog.cc
|
||||
login_dialog.hh
|
||||
main.cc
|
||||
main.hh
|
||||
main_window.cc
|
||||
main_window.hh
|
||||
)
|
||||
target_link_libraries(${PROJECT_NAME}
|
||||
PRIVATE
|
||||
deltachat-core::libdeltachat
|
||||
Qt6::Widgets
|
||||
)
|
||||
target_compile_features(${PROJECT_NAME}
|
||||
PRIVATE
|
||||
cxx_std_20
|
||||
)
|
||||
target_compile_options(${PROJECT_NAME}
|
||||
PRIVATE
|
||||
$<$<OR:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:AppleClang>,$<CXX_COMPILER_ID:GNU>>:-Wall -Wextra>
|
||||
)
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES
|
||||
WIN32_EXECUTABLE ON
|
||||
MACOSX_BUNDLE ON
|
||||
)
|
||||
install(TARGETS ${PROJECT_NAME})
|
||||
|
||||
add_autoformat_target(${PROJECT_NAME})
|
25
src/meson.build
Normal file
25
src/meson.build
Normal file
|
@ -0,0 +1,25 @@
|
|||
qt6 = import('qt6')
|
||||
moc_files = qt6.compile_moc(headers : [
|
||||
'deltachat_context.hh',
|
||||
'login_dialog.hh',
|
||||
'main.hh',
|
||||
'main_window.hh',
|
||||
],
|
||||
dependencies : [
|
||||
deltachat_dep,
|
||||
qt6_dep,
|
||||
])
|
||||
executable('kappachat',
|
||||
sources : [
|
||||
'deltachat_context.cc',
|
||||
'login_dialog.cc',
|
||||
'main.cc',
|
||||
'main_window.cc',
|
||||
moc_files,
|
||||
],
|
||||
dependencies : [
|
||||
deltachat_dep,
|
||||
qt6_dep,
|
||||
],
|
||||
gui_app : true,
|
||||
install : true)
|
Loading…
Reference in a new issue