should be it

This commit is contained in:
2025-10-24 19:21:19 -05:00
parent a4b23fc57c
commit f09560c7b1
14047 changed files with 3161551 additions and 1 deletions

View File

@@ -0,0 +1,69 @@
include_directories(include)
include_directories(../sqlite3_api_wrapper/include)
if(NOT WIN32)
add_subdirectory(linenoise)
add_definitions(-DHAVE_LINENOISE=1)
include_directories(../../third_party/utf8proc/include)
include_directories(linenoise/include)
endif()
set(SHELL_SOURCES ${SHELL_SOURCES} shell.cpp shell_renderer.cpp
shell_highlight.cpp)
option(STATIC_LIBCPP "Statically link CLI to libc++" FALSE)
add_executable(shell ${SHELL_SOURCES})
target_link_libraries(shell sqlite3_api_wrapper_static
${DUCKDB_EXTRA_LINK_FLAGS})
link_threads(shell "")
if(STATIC_LIBCPP)
message("Statically linking CLI")
target_link_libraries(shell -static-libstdc++ -static-libgcc)
endif()
if(NOT AMALGAMATION_BUILD AND NOT WIN32)
target_link_libraries(shell duckdb_utf8proc)
endif()
function(ensure_variable_is_number INPUT_VERSION OUT_RESULT)
if(NOT "${${INPUT_VERSION}}" MATCHES "^[0-9]+$")
message(
WARNING
"VERSION PARAMETER ${INPUT_VERSION} \"${${INPUT_VERSION}}\" IS NOT A NUMBER - SETTING TO 0"
)
set(${OUT_RESULT}
0
PARENT_SCOPE)
else()
set(${OUT_RESULT}
${${INPUT_VERSION}}
PARENT_SCOPE)
endif()
endfunction()
if(WIN32 AND NOT MINGW)
string(TIMESTAMP DUCKDB_COPYRIGHT_YEAR "%Y")
ensure_variable_is_number(DUCKDB_MAJOR_VERSION RC_MAJOR_VERSION)
ensure_variable_is_number(DUCKDB_MINOR_VERSION RC_MINOR_VERSION)
ensure_variable_is_number(DUCKDB_PATCH_VERSION RC_PATCH_VERSION)
ensure_variable_is_number(DUCKDB_DEV_ITERATION RC_DEV_ITERATION)
set(CMAKE_RC_FLAGS
"${CMAKE_RC_FLAGS} -D DUCKDB_VERSION=\"${DUCKDB_VERSION}\"")
set(CMAKE_RC_FLAGS
"${CMAKE_RC_FLAGS} -D DUCKDB_MAJOR_VERSION=\"${RC_MAJOR_VERSION}\"")
set(CMAKE_RC_FLAGS
"${CMAKE_RC_FLAGS} -D DUCKDB_MINOR_VERSION=\"${RC_MINOR_VERSION}\"")
set(CMAKE_RC_FLAGS
"${CMAKE_RC_FLAGS} -D DUCKDB_PATCH_VERSION=\"${RC_PATCH_VERSION}\"")
set(CMAKE_RC_FLAGS
"${CMAKE_RC_FLAGS} -D DUCKDB_DEV_ITERATION=\"${RC_DEV_ITERATION}\"")
set(CMAKE_RC_FLAGS
"${CMAKE_RC_FLAGS} -D DUCKDB_COPYRIGHT_YEAR=\"${DUCKDB_COPYRIGHT_YEAR}\"")
target_sources(shell PRIVATE rc/duckdb.rc)
endif()
set_target_properties(shell PROPERTIES OUTPUT_NAME duckdb)
set_target_properties(shell PROPERTIES RUNTIME_OUTPUT_DIRECTORY
${PROJECT_BINARY_DIR})
install(TARGETS shell RUNTIME DESTINATION "${INSTALL_BIN_DIR}")