add cmake

This commit is contained in:
sonoro1234 2019-03-02 09:21:31 +01:00
parent 5cc91ab600
commit 5c61d9a765

57
CMakeLists.txt Normal file
View file

@ -0,0 +1,57 @@
PROJECT(luasocket C)
cmake_minimum_required(VERSION 2.8)
aux_source_directory(./src socket_src)
list(REMOVE_ITEM socket_src ./src/mime.c)
if(WIN32)
list(REMOVE_ITEM socket_src ./src/serial.c ./src/unix.c ./src/usocket.c)
add_definitions(-D_WIN32_WINNT=0x0501)
add_definitions("-DLUASOCKET_API=__declspec(dllexport)")
add_definitions("-DMIME_API=__declspec(dllexport)")
set(POSTN dll)
else()
add_definitions("-DLUASOCKET_API=__attribute__((visibility(default)))")
add_definitions("-DMIME_API=__attribute__((visibility(default)))")
set(POSTN so)
endif(WIN32)
if(WIN32)#MINGW) and msvc
add_definitions(-DLUASOCKET_INET_PTON)
endif()
INCLUDE_DIRECTORIES(${LUA_INCLUDE_DIR})
add_definitions(-DLUASOCKET_DEBUG)
add_definitions(-DLUA_BUILD_AS_DLL -DLUA_LIB -DLUASOCKET_EXPORTS)
add_library(socket SHARED ${socket_src})
ADD_LIBRARY(mime SHARED ./src/mime.c ./src/compat.c)
#set_target_properties(socket PROPERTIES PREFIX "" OUTPUT_NAME core)
#set_target_properties(mime PROPERTIES PREFIX "" OUTPUT_NAME core)
if(MSVC)
set_target_properties(socket PROPERTIES PREFIX "lib")
set_target_properties(mime PROPERTIES PREFIX "lib")
endif()
TARGET_LINK_LIBRARIES(socket ${LUA_LIBRARY} wsock32 ws2_32 )
TARGET_LINK_LIBRARIES(mime ${LUA_LIBRARY})
######install
#set default LDIR and CDIR if not given
if( NOT CDIR)
set(CDIR .)
endif()
if( NOT LDIR)
set(LDIR ./lua)
endif()
##cant use set_target_properties to rename because one overwrites the other so:
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/libsocket.${POSTN} DESTINATION ${CDIR}/socket RENAME core.${POSTN})
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/libmime.${POSTN} DESTINATION ${CDIR}/mime RENAME core.${POSTN})
#INSTALL(TARGETS socket RUNTIME DESTINATION ${CDIR}/socket)
#INSTALL(TARGETS mime RUNTIME DESTINATION ${CDIR}/mime)
install(DIRECTORY src/ DESTINATION ${LDIR}/socket
FILES_MATCHING PATTERN "*.lua"
PATTERN ltn12.lua EXCLUDE
PATTERN socket.lua EXCLUDE
PATTERN mime.lua EXCLUDE)
install(FILES ./src/socket.lua ./src/mime.lua ./src/ltn12.lua DESTINATION ${LDIR})