cmake_minimum_required(VERSION 3.9 FATAL_ERROR) project(workflow_objectivec) if((NOT BN_API_PATH) AND (NOT BN_INTERNAL_BUILD)) set(BN_API_PATH $ENV{BN_API_PATH}) if(NOT BN_API_PATH) message(FATAL_ERROR "Provide path to Binary Ninja API source in BN_API_PATH") endif() endif() if(NOT BN_INTERNAL_BUILD) add_subdirectory(${BN_API_PATH} ${PROJECT_BINARY_DIR}/api) endif() file(GLOB SOURCES *.cpp *.c *.h) add_library(workflow_objectivec SHARED ${SOURCES}) target_link_libraries(workflow_objectivec binaryninjaapi) set_target_properties(workflow_objectivec PROPERTIES CXX_STANDARD 17 CXX_VISIBILITY_PRESET hidden CXX_STANDARD_REQUIRED ON C_STANDARD 99 C_STANDARD_REQUIRED ON C_VISIBILITY_PRESET hidden VISIBILITY_INLINES_HIDDEN ON POSITION_INDEPENDENT_CODE ON) if(BN_INTERNAL_BUILD) plugin_rpath(workflow_objectivec) set_target_properties(workflow_objectivec PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${BN_CORE_PLUGIN_DIR} RUNTIME_OUTPUT_DIRECTORY ${BN_CORE_PLUGIN_DIR}) endif()