diff --git a/CMakeLists.txt b/CMakeLists.txt index b3dbfb6..3172ee1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,16 +1,22 @@ -cmake_minimum_required(VERSION 3.1) +cmake_minimum_required(VERSION 3.5) project(NDIlib VERSION 4.5.1) +set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/Modules) + set(PYBIND11_CPP_STANDARD -std=c++17) add_subdirectory("lib/pybind11") +find_package(NDI REQUIRED) + file(GLOB INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/src/*.hpp) file(GLOB SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp) pybind11_add_module(NDIlib SHARED ${INCLUDES} ${SOURCES}) -target_link_libraries(NDIlib PRIVATE pybind11::module ndi) +target_include_directories(NDIlib PRIVATE ${NDI_INCLUDE_DIR}) +target_link_directories(NDIlib PRIVATE ${NDI_LIBRARY_DIR}) +target_link_libraries(NDIlib PRIVATE pybind11::module ${NDI_LIBS}) source_group("" FILES ${SOURCES} ${INCLUDES}) diff --git a/cmake/Modules/FindNDI.cmake b/cmake/Modules/FindNDI.cmake new file mode 100644 index 0000000..51ebf13 --- /dev/null +++ b/cmake/Modules/FindNDI.cmake @@ -0,0 +1,25 @@ +if(WIN32) + if(DEFINED ENV{NDI_SDK_DIR}) + set(NDI_FOUND TRUE) + set(NDI_DIR $ENV{NDI_SDK_DIR}) + string(REPLACE "\\" "/" NDI_DIR "${NDI_DIR}") + set(NDI_INCLUDE_DIR "${NDI_DIR}/Include") + set(NDI_LIBRARY_DIR "${NDI_DIR}/Lib/x64") + set(NDI_LIBS "Processing.NDI.Lib.x64") + else() + set(NDI_FOUND FALSE) + endif() +elseif(UNIX) + if(EXISTS "/usr/include/Processing.NDI.Lib.h") + set(NDI_FOUND TRUE) + set(NDI_DIR "/usr") + set(NDI_INCLUDE_DIR "${NDI_DIR}/include") + set(NDI_LIBRARY_DIR "${NDI_DIR}/lib") + set(NDI_LIBS "ndi") + else() + set(NDI_FOUND FALSE) + endif() +endif() + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(NDI DEFAULT_MSG NDI_DIR ${NDI_FOUND})