67 lines
1.5 KiB
CMake
67 lines
1.5 KiB
CMake
cmake_minimum_required(VERSION 3.0.0)
|
|
project(ml VERSION 0.5.0)
|
|
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
# set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
# set(CMAKE_CXX_EXTENSIONS OFF)
|
|
|
|
set(CPACK_PROJECT_NAME ${PROJECT_NAME})
|
|
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
|
|
|
|
# stack 16MB
|
|
# set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-stack_size -Wl,0x1000000")
|
|
# otool -lV build/ml | grep stack
|
|
|
|
# set(CMAKE_CXX_FLAGS "-Wall -Wextra")
|
|
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG")
|
|
|
|
include_directories(/opt/homebrew/opt/openssl@1.1/include ${CMAKE_SOURCE_DIR}/clib ${CMAKE_SOURCE_DIR})
|
|
|
|
link_directories(/opt/homebrew/opt/openssl@1.1/lib)
|
|
|
|
|
|
project(ml)
|
|
set(PROJECT_NAME ml)
|
|
|
|
set(SOURCE
|
|
ml.cpp
|
|
ml_io.cpp
|
|
ml_date.cpp
|
|
ml_string.cpp
|
|
ml_util.cpp
|
|
ml_profiler.cpp
|
|
ml_usql.cpp
|
|
clib/csvparser.cpp
|
|
clib/sslclient.cpp
|
|
clib/tcpnet.cpp
|
|
clib/json11.cpp
|
|
clib/printf.cpp
|
|
clib/linenoise.c
|
|
usql/exception.cpp
|
|
usql/lexer.cpp
|
|
usql/parser.cpp
|
|
usql/usql.cpp
|
|
usql/usql_dml.cpp
|
|
usql/usql_ddl.cpp
|
|
usql/usql_function.cpp
|
|
usql/table.cpp
|
|
usql/row.cpp
|
|
usql/csvreader.cpp
|
|
usql/settings.cpp
|
|
usql/usql.cpp)
|
|
|
|
add_executable(${PROJECT_NAME} ${SOURCE})
|
|
|
|
target_link_libraries(${PROJECT_NAME} stdc++ m ssl crypto pthread)
|
|
|
|
set(CMAKE_INSTALL_PREFIX "/usr/local")
|
|
INSTALL(TARGETS ml
|
|
CONFIGURATIONS Release
|
|
RUNTIME DESTINATION bin)
|
|
|
|
INSTALL(DIRECTORY stdlib/ DESTINATION var/mlisp
|
|
FILES_MATCHING PATTERN "*.lsp")
|
|
|
|
INSTALL(DIRECTORY doc/ DESTINATION var/mlisp
|
|
FILES_MATCHING PATTERN "*.md")
|