mlisp/CMakeLists.txt

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")