indigo-node
Version:
Indigo nodejs bindings
74 lines (61 loc) • 2.83 kB
Plain Text
cmake_minimum_required(VERSION 2.8)
project(Bingo CXX)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/../../../common/cmake/)
file (GLOB Bingo_src src/*.c*)
file (GLOB Bingo_headers *.h src/*.h*)
include(ConfigureCommon)
include_directories(${Bingo_SOURCE_DIR}
${Indigo_SOURCE_DIR}
${Indigo_SOURCE_DIR}/src
${Common_SOURCE_DIR}
${Common_SOURCE_DIR}/..)
include(DefineTest)
# Bingo static
if (NOT NO_STATIC)
add_library(bingo STATIC ${Bingo_src} ${Bingo_headers})
if(UNIX AND NOT APPLE)
SET_TARGET_PROPERTIES(bingo PROPERTIES LINK_FLAGS -Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/bingo.so.map)
endif()
if(APPLE)
SET_TARGET_PROPERTIES(bingo PROPERTIES LINK_FLAGS "-Wl,-exported_symbols_list,${CMAKE_CURRENT_SOURCE_DIR}/bingo.explist")
endif()
set_target_properties(bingo PROPERTIES COMPILE_FLAGS "${COMPILE_FLAGS}")
SET_TARGET_PROPERTIES(bingo PROPERTIES OUTPUT_NAME "bingo-static")
set_property(TARGET bingo PROPERTY FOLDER "bingo")
# No exports in case of static library: define empty EXPORT_SYMBOL definition
set_target_properties(bingo PROPERTIES COMPILE_FLAGS "${COMPILE_FLAGS} -DEXPORT_SYMBOL=")
PACK_STATIC(bingo)
#DEFINE_TEST(bingo-test-static "tests/c/bingo-test.c" bingo indigo)
# Add stdc++ library required by indigo
#SET_TARGET_PROPERTIES(bingo-test-static PROPERTIES LINKER_LANGUAGE CXX)
endif()
# Bingo shared
add_library(bingo-shared SHARED ${Bingo_src} ${Bingo_headers} ${Common_SOURCE_DIR}/hacks/memcpy.c)
if (UNIX AND NOT APPLE)
if(${SUBSYSTEM_NAME} MATCHES "x64")
set(LINK_FLAGS "${LINK_FLAGS} -Wl,--wrap=memcpy")
endif()
endif()
SET_TARGET_PROPERTIES(bingo-shared PROPERTIES OUTPUT_NAME "bingo")
if(UNIX AND NOT APPLE)
SET_TARGET_PROPERTIES(bingo-shared PROPERTIES LINK_FLAGS "${LINK_FLAGS} -Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/bingo.so.map")
endif()
if(APPLE)
SET_TARGET_PROPERTIES(bingo-shared PROPERTIES LINK_FLAGS "${LINK_FLAGS} -undefined dynamic_lookup -Wl,-exported_symbols_list,${CMAKE_CURRENT_SOURCE_DIR}/bingo.explist")
endif()
set_target_properties(bingo-shared PROPERTIES COMPILE_FLAGS "${COMPILE_FLAGS}")
if(MSVC)
# This should be set only for a shared library to avoid warnings
set_target_properties(bingo-shared PROPERTIES COMPILE_FLAGS "-D_WINDLL -DINDIGO_PLUGIN")
endif()
if (MSVC OR MINGW)
target_link_libraries(bingo-shared indigo-shared)
endif()
set_property(TARGET bingo-shared PROPERTY LINK_INTERFACE_LIBRARIES "")
set_property(TARGET bingo-shared PROPERTY FOLDER "bingo")
IF (NOT PACK_INDIGO_NOT)
PACK_SHARED(bingo-shared)
ENDIF()
#DEFINE_TEST(bingo-test-shared "tests/c/bingo-test.c" bingo-shared indigo-shared)
# Add stdc++ library required by indigo
#SET_TARGET_PROPERTIES(bingo-test-shared PROPERTIES LINKER_LANGUAGE CXX)