mirror of
https://github.com/carp-lang/Carp.git
synced 2024-09-17 08:27:45 +03:00
CMake support for the c source
This commit is contained in:
parent
bf9c58f1f9
commit
6dd2fd882f
3
.gitignore
vendored
3
.gitignore
vendored
@ -7,3 +7,6 @@
|
||||
/src/*.o
|
||||
/out/exe
|
||||
a.out
|
||||
/bin/Debug/
|
||||
/bin/Release/
|
||||
/build/
|
28
CMakeLists.txt
Normal file
28
CMakeLists.txt
Normal file
@ -0,0 +1,28 @@
|
||||
cmake_minimum_required(VERSION 3.0)
|
||||
|
||||
project(carp-repl)
|
||||
|
||||
set(VERSION_MAJOR "0")
|
||||
set(VERSION_MINOR "0")
|
||||
set(VERSION_PATCH "1")
|
||||
set(VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
|
||||
|
||||
set(SOURCE_DIR src)
|
||||
include(globfiles.cmake)
|
||||
|
||||
# list(APPEND SOURCE_FILES src/main.c src/obj.c src/gc.c src/obj_string.c src/reader.c src/eval.c src/env.c src/primops.c src/repl.c)
|
||||
|
||||
# ${SOURCE_FILES}
|
||||
|
||||
include_directories(/usr/local/opt/libffi/lib/libffi-3.0.13/include)
|
||||
link_directories(/usr/local/opt/libffi/lib/)
|
||||
|
||||
add_executable(${PROJECT_NAME} ${${PROJECT_NAME}_h} ${${PROJECT_NAME}_c})
|
||||
|
||||
target_link_libraries(${PROJECT_NAME} ffi)
|
||||
|
||||
set_target_properties(${PROJECT_NAME}
|
||||
PROPERTIES
|
||||
RUNTIME_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/bin"
|
||||
)
|
||||
|
48
globfiles.cmake
Normal file
48
globfiles.cmake
Normal file
@ -0,0 +1,48 @@
|
||||
|
||||
file(GLOB ${PROJECT_NAME}_mac_c "${SOURCE_DIR}/*_MacOSX.c")
|
||||
file(GLOB ${PROJECT_NAME}_mac_cpp "${SOURCE_DIR}/*_MacOSX.cpp")
|
||||
file(GLOB ${PROJECT_NAME}_mac_m "${SOURCE_DIR}/*_MacOSX.m")
|
||||
file(GLOB ${PROJECT_NAME}_mac_mm "${SOURCE_DIR}/*_MacOSX.mm")
|
||||
file(GLOB ${PROJECT_NAME}_mac_h "${SOURCE_DIR}/*_MacOSX.h")
|
||||
list(APPEND ${PROJECT_NAME}_mac_c ${${PROJECT_NAME}_mac_cpp} ${${PROJECT_NAME}_mac_m} ${${PROJECT_NAME}_mac_mm})
|
||||
|
||||
file(GLOB ${PROJECT_NAME}_win_c "${SOURCE_DIR}/*_MSWIN.c")
|
||||
file(GLOB ${PROJECT_NAME}_win_cpp "${SOURCE_DIR}/*_MSWIN.cpp")
|
||||
file(GLOB ${PROJECT_NAME}_win_h "${SOURCE_DIR}/*_MSWIN.h")
|
||||
list(APPEND ${PROJECT_NAME}_win_c ${${PROJECT_NAME}_win_cpp})
|
||||
|
||||
file(GLOB ${PROJECT_NAME}_linux_c "${SOURCE_DIR}/*_Linux.c")
|
||||
file(GLOB ${PROJECT_NAME}_linux_cpp "${SOURCE_DIR}/*_Linux.cpp")
|
||||
file(GLOB ${PROJECT_NAME}_linux_h "${SOURCE_DIR}/*_Linux.h")
|
||||
list(APPEND ${PROJECT_NAME}_mac_c ${${PROJECT_NAME}_linux_cpp})
|
||||
|
||||
file(GLOB ${PROJECT_NAME}_c "${SOURCE_DIR}/*.c")
|
||||
file(GLOB ${PROJECT_NAME}_cpp "${SOURCE_DIR}/*.cpp")
|
||||
file(GLOB ${PROJECT_NAME}_h "${SOURCE_DIR}/*.h")
|
||||
list(APPEND ${PROJECT_NAME}_c ${${PROJECT_NAME}_cpp})
|
||||
|
||||
if(${PROJECT_NAME}_mac_c OR ${PROJECT_NAME}_win_c OR ${PROJECT_NAME}_linux_c)
|
||||
list(REMOVE_ITEM ${PROJECT_NAME}_c ${${PROJECT_NAME}_mac_c} ${${PROJECT_NAME}_win_c} ${${PROJECT_NAME}_linux_c})
|
||||
|
||||
if(WIN32)
|
||||
list(APPEND ${PROJECT_NAME}_c ${${PROJECT_NAME}_win_c})
|
||||
elseif(APPLE)
|
||||
list(APPEND ${PROJECT_NAME}_c ${${PROJECT_NAME}_mac_c})
|
||||
else()
|
||||
list(APPEND ${PROJECT_NAME}_c ${${PROJECT_NAME}_linux_c})
|
||||
endif()
|
||||
|
||||
endif()
|
||||
|
||||
if(${PROJECT_NAME}_mac_h OR ${PROJECT_NAME}_win_h OR ${PROJECT_NAME}_linux_h)
|
||||
list(REMOVE_ITEM ${PROJECT_NAME}_h ${${PROJECT_NAME}_mac_h} ${${PROJECT_NAME}_win_h} ${${PROJECT_NAME}_linux_h})
|
||||
|
||||
if(WIN32)
|
||||
list(APPEND ${PROJECT_NAME}_h ${${PROJECT_NAME}_win_h})
|
||||
elseif(APPLE)
|
||||
list(APPEND ${PROJECT_NAME}_h ${${PROJECT_NAME}_mac_h})
|
||||
else()
|
||||
list(APPEND ${PROJECT_NAME}_h ${${PROJECT_NAME}_linux_h})
|
||||
endif()
|
||||
|
||||
endif()
|
Loading…
Reference in New Issue
Block a user