diff --git a/native/cpp/CommonCpp/NativeModules/CMakeLists.txt b/native/cpp/CommonCpp/NativeModules/CMakeLists.txt index 21833f291..3e08e624b 100644 --- a/native/cpp/CommonCpp/NativeModules/CMakeLists.txt +++ b/native/cpp/CommonCpp/NativeModules/CMakeLists.txt @@ -1,105 +1,112 @@ project(comm-modules) cmake_minimum_required(VERSION 3.4) +# For C++17 on MacOS, we must set minimum target to 10.14+ +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_OSX_DEPLOYMENT_TARGET 10.14) + include(GNUInstallDirs) set(NATIVE_HDRS "CommCoreModule.h" "MessageStoreOperations.h" "ThreadStoreOperations.h" ) set(NATIVE_SRCS "CommCoreModule.cpp" ) add_library(comm-modules-native ${NATIVE_HDRS} ${NATIVE_SRCS} ) set_target_properties(comm-modules-native PROPERTIES LINKER_LANGUAGE CXX) +target_compile_options(comm-modules-native PRIVATE -Wc++17-extensions) # reference local directory when building, use installation path when installing target_include_directories(comm-modules-native PUBLIC $ $ # HACK PRIVATE "../../../../node_modules/react-native/ReactCommon/jsi" "../../../../node_modules/react-native/ReactCommon/react/nativemodule/core" "../../../../node_modules/react-native/ReactCommon/callinvoker" + "../../../../node_modules/react-native/ReactCommon" + "../../../native_rust_library" ) set(_message_path ./PersistentStorageUtilities/MessageOperationsUtilities) set(MESSAGE_HDRS ${_message_path}/MessageOperationsUtilities.h ${_message_path}/MessageSpecs.h ) set(MESSAGE_SRCS ${_message_path}/MessageOperationsUtilities.cpp ) file(GLOB MESSAGE_SPEC_HDRS ${_message_path}/MessageSpecs/*.h ) file(GLOB THREAD_OP_HDRS ./PersistentStorageUtilities/ThreadOperationsUtilities/*.h ) set(THREAD_OP_SRCS ./PersistentStorageUtilities/ThreadOperationsUtilities/ThreadOperations.cpp ) add_library(comm-modules-persistentstorage ${MESSAGE_HDRS} ${MESSAGE_SRCS} ${MESSAGE_SPEC_HDRS} ${THREAD_OP_HDRS} ${THREAD_OP_SRCS} ) # reference local directory when building, use installation path when installing target_include_directories(comm-modules-persistentstorage PUBLIC $ $ $ PRIVATE # HACK "../../../node_modules/react-native/ReactCommon/jsi" ) set(_components native persistentstorage) foreach(component ${_components}) install(TARGETS comm-modules-${component} EXPORT comm-modules-export RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT comm-modules LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT comm-modules ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT comm-modules ) endforeach() install(FILES ${INTERNAL_HDRS} DESTINATION include/InternalModules) install(FILES ${NATIVE_HDRS} DESTINATION include/NativeModules) install(FILES ${MESSAGE_HDRS} DESTINATION include/PersistentStorageUtilities) install(FILES ${MESSAGE_SPEC_HDRS} DESTINATION include/PersistentStorageUtilities/MessageSpecs ) install(FILES ${THREAD_OP_HDRS} DESTINATION include/ThreadOperationsUtilities) export(TARGETS comm-modules-native NAMESPACE comm-modules:: FILE ${CMAKE_CURRENT_BINARY_DIR}/cmake/comm-modules/comm-modules-targets.cmake ) # For installation install(EXPORT comm-modules-export FILE comm-modules-targets.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/comm-modules NAMESPACE comm-modules:: )