You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

72 lines
1.5 KiB

cmake_minimum_required (VERSION 2.8)
project(fuse-wsfs)
set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
find_package(PkgConfig REQUIRED)
pkg_check_modules(FUSE3 REQUIRED fuse3)
pkg_check_modules(LWS REQUIRED libwebsockets)
pkg_check_modules(JANSSON REQUIRED jansson)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -pedantic -Wextra")
set(EXTRA_INCLUDE_DIRS
${FUSE3_INCLUDE_DIRS}
${LWS_INCLUDE_DIRS}
${JANSSON_INCLUDE_DIRS}
)
set(EXTRA_LIBS
${EXTRA_LIBS}
${FUSE3_LIBRARIES}
${LWS_LIBRARIES}
${JANSSON_LIBRARIES}
${CMAKE_THREAD_LIBS_INIT}
)
set(EXTRA_CFLAGS
${FUSE3_CFLAGS_OTHER}
${LWS_CFLAGS_OTHER}
${JANSSON_CFLAGS_OTHER}
"-pthread"
)
# libfuse-wsfs
add_library(fuse-wsfs
src/wsfs/operations.c
src/wsfs/filesystem.c
src/wsfs/response_parser.c
src/wsfs/server.c
src/wsfs/protocol.c
src/wsfs/jsonrpc.c
)
target_include_directories(fuse-wsfs PUBLIC src ${EXTRA_INCLUDE_DIRS})
target_compile_options(fuse-wsfs PUBLIC ${EXTRA_CFLAGS})
# app
add_executable(wsfs
src/app/main.c
)
target_link_libraries(wsfs PUBLIC fuse-wsfs ${EXTRA_LIBS})
target_include_directories(wsfs PUBLIC src ${EXTRA_INCLUDE_DIRS})
target_compile_options(wsfs PUBLIC ${EXTRA_CFLAGS})
# tests
add_executable(alltests
test-src/test_main.c
test-src/test_util.c
test-src/test_response_parser.c
)
target_link_libraries(alltests PUBLIC fuse-wsfs ${EXTRA_LIBS})
target_include_directories(alltests PUBLIC src ${EXTRA_INCLUDE_DIRS})
target_compile_options(alltests PUBLIC ${EXTRA_CFLAGS})