Carp/CMakeLists.txt

63 lines
1.4 KiB
CMake

cmake_minimum_required(VERSION 2.8)
project(carp-repl)
set(VERSION_MAJOR "0")
set(VERSION_MINOR "0")
set(VERSION_PATCH "1")
set(VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
# use c99
set(CMAKE_C_FLAGS "--std=c99 ${CMAKE_C_FLAGS}")
if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_GNU_SOURCE")
# linux uses pkg config
Include(FindPkgConfig)
PKG_SEARCH_MODULE(LIBFFI REQUIRED libffi)
else()
# other systems use manually set paths
# set name must match the one set by pkg config
set(LIBFFI_INCLUDE_DIRS
"${PROJECT_SOURCE_DIR}/../libffi/x86_64-apple-darwin15.3.0/include"
CACHE
PATH
"libffi include directory")
# set name must match the one set by pkg config
set(LIBFFI_LIBRARIES
"${PROJECT_SOURCE_DIR}/../libffi/x86_64-apple-darwin15.3.0/.libs"
CACHE
PATH
"libffi library directory")
endif()
set(SOURCE_DIR src)
include(globfiles.cmake)
include_directories(
${LIBFFI_INCLUDE_DIRS})
link_directories(
${LIBFFI_LIBRARIES})
add_executable(${PROJECT_NAME} ${${PROJECT_NAME}_h} ${${PROJECT_NAME}_c})
target_link_libraries(${PROJECT_NAME}
ffi
m
c
pthread
dl)
set_target_properties(${PROJECT_NAME}
PROPERTIES
RUNTIME_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/bin")
add_custom_target(
format
COMMAND find . -iname '*.[ch]' | xargs clang-format -style=file -i
)