summaryrefslogtreecommitdiff
path: root/src/CMakeLists.txt
blob: a00dd772fa66728a2d5e97d85016aa89a57cb5c3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
cmake_minimum_required(VERSION 3.5)
SET(CMAKE_CXX_COMPILER /usr/bin/g++)
aux_source_directory(. DIR_LIB_SRCS)
include_directories("${LUAJIT_INSTALL_PREFIX}/include/luajit-2.1")

SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -shared -fPIC")
SET(CMAKE_CXX_DEBUG_FLAGS "${CMAKE_CXX_DEBUG_FLAGS} -Delua_DEBUG")
SET(CMAKE_BUILD_TYPE "Release")

option(elua_DEBUG "If enabled, the SDK will be print debuginfo." OFF)

if (BUILD_STATIC_LIB)
    add_library(${lib_name}_static STATIC ${DIR_LIB_SRCS})
    target_link_libraries(${lib_name}_static dl luajit2-static)
    set_target_properties(${lib_name}_static PROPERTIES OUTPUT_NAME ${lib_name})

    add_custom_command(TARGET ${lib_name}_static POST_BUILD
        COMMAND ar x ${CMAKE_CURRENT_BINARY_DIR}/lib${lib_name}.a
        COMMAND ar x ${LUAJIT_INSTALL_PREFIX}/lib/libluajit-5.1.a
        COMMAND ar cru lib${lib_name}.a *.o
        COMMAND ranlib lib${lib_name}.a
        COMMAND rm *.o
    )   
    install(TARGETS ${lib_name}_static LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib ARCHIVE DESTINATION ${CMAKE_INSTALL_PREFIX}/lib COMPONENT LIBRARIES)
else()
    add_library(${lib_name}_shared SHARED ${DIR_LIB_SRCS})
    target_link_libraries(${lib_name}_shared dl luajit2-static)
    set_target_properties(${lib_name}_shared PROPERTIES OUTPUT_NAME ${lib_name})

    install(TARGETS ${lib_name}_shared LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib COMPONENT LIBRARIES)
endif()

install(FILES ${CMAKE_SOURCE_DIR}/src/elua.h DESTINATION ${CMAKE_INSTALL_PREFIX}/include/MESA COMPONENT HEADER)
install(PROGRAMS ${CMAKE_SOURCE_DIR}/example/checktools/checktools.lua DESTINATION ${LUAJIT_INSTALL_PREFIX}/bin COMPONENT LIBRARIES)