39 lines
929 B
CMake
39 lines
929 B
CMake
cmake_minimum_required(VERSION 3.22)
|
|
|
|
project(sgard VERSION 0.0.1
|
|
LANGUAGES CXX
|
|
DESCRIPTION "Shimmer Clarity Gardener: A dot-files manager.")
|
|
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
set(CMAKE_VERBOSE_MAKEFILES TRUE)
|
|
|
|
find_package(Protobuf REQUIRED)
|
|
find_package(scsl REQUIRED)
|
|
|
|
file(GLOB ProtoFiles "${CMAKE_CURRENT_SOURCE_DIR}/proto/*.proto")
|
|
PROTOBUF_GENERATE_CPP(ProtoSources ProtoHeaders ${ProtoFiles})
|
|
include_directories(${CMAKE_CURRENT_BINARY_DIR})
|
|
include_directories(${SCSL_INCLUDE_DIRS})
|
|
|
|
add_library(protolib STATIC ${ProtoSources} ${ProtoHeaders})
|
|
target_link_libraries(protolib INTERFACE ${Protobuf_LIBRARIES})
|
|
|
|
add_compile_options(
|
|
"-static"
|
|
"-Werror" "-Wextra" "-Wall"
|
|
"-Weffc++"
|
|
)
|
|
|
|
if (CMAKE_BUILD_TYPE STREQUAL Debug)
|
|
add_compile_options("-g" "-fsanitize=address")
|
|
endif ()
|
|
|
|
set(HEADER_FILES
|
|
|
|
)
|
|
|
|
set(SOURCE_FILES sgard.cc)
|
|
|
|
add_executable(sgard ${SOURCE_FILES})
|
|
target_link_libraries(sgard protolib ${SCSL_LIBRARIES})
|