cmake_minimum_required(VERSION 3.13) project(nanobbs C) add_executable(${PROJECT_NAME} auth.c astrftime.c db.c db_post.c db_section.c db_topic.c default_prv_policy.c default_style.c default_terms.c ep_create.c ep_index.c ep_login.c ep_logout.c ep_passwd.c ep_signup.c ep_style.c ep_ucp.c ep_view.c form_badreq.c form_category.c form_footer.c form_head.c form_login.c form_post.c form_section.c form_shortpwd.c form_topic.c form_unauthorized.c gencookie.c getul.c getul_n.c jwt.c login_get.c main.c op.c sanitize.c ) add_executable(tokengen jwt.c tokengen.c ) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_LIST_DIR}/cmake) find_package(libsodium REQUIRED) find_package(cJSON REQUIRED) find_package(SQLite3 3.6.19 REQUIRED) find_package(web 0.3.0) if(WEB_FOUND) find_package(dynstr 0.1.0 REQUIRED) else() message(STATUS "Using in-tree libweb") set(BUILD_EXAMPLES OFF) add_subdirectory(libweb) # dynstr is already provided by libweb. endif() set(deps dynstr sqlite3 libsodium cjson) target_link_libraries(${PROJECT_NAME} PRIVATE web ${deps}) target_compile_options(${PROJECT_NAME} PRIVATE -Wall) target_link_libraries(tokengen PRIVATE ${deps}) target_compile_options(tokengen PRIVATE -Wall) install(TARGETS ${PROJECT_NAME} tokengen)