cmake_minimum_required(VERSION 3.10) project(simple_object_storage) set(PROJECT_EXE_NAME simple_object_storage) # Set the build type to Debug #set(CMAKE_BUILD_TYPE Debug CACHE STRING "Build type (e.g., Debug, Release)" FORCE) set(CMAKE_CXX_STANDARD 23) set(CMAKE_CXX_STANDARD_REQUIRED ON) # Linking flags (removed -static) set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}") set(BUILD_SHARED_LIBS OFF) # Configure version information string(TIMESTAMP CURRENT_YEAR "%Y") string(TIMESTAMP CURRENT_MONTH "%m") string(TIMESTAMP CURRENT_DAY "%d") string(TIMESTAMP CURRENT_HOUR "%H") string(TIMESTAMP CURRENT_MINUTE "%M") set(PROJECT_VERSION "${CURRENT_YEAR}.${CURRENT_MONTH}${CURRENT_DAY}.${CURRENT_HOUR}${CURRENT_MINUTE}") string(TIMESTAMP RELEASE_DATE "%Y-%m-%d") # Configure version.hpp file configure_file( "${CMAKE_CURRENT_SOURCE_DIR}/src/version.hpp.in" "${CMAKE_CURRENT_BINARY_DIR}/src/autogen/version.hpp" @ONLY ) # Find all source files in src directory file(GLOB_RECURSE SOURCES "src/*.cpp" "src/sqlite3/*.c" ) # Find all header files in src directory file(GLOB_RECURSE HEADERS "src/*.hpp" "src/sqlite3/*.h" ) # Add include directories include_directories( $ ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/src ${CMAKE_CURRENT_SOURCE_DIR}/src/autogen ) # Create executable add_executable(${PROJECT_EXE_NAME} ${SOURCES}) # Remove specific static flags as CMAKE_EXE_LINKER_FLAGS handles it now target_link_libraries(${PROJECT_EXE_NAME} ) # Install target install(TARGETS ${PROJECT_EXE_NAME} RUNTIME DESTINATION bin )