diff --git a/binding.gyp b/binding.gyp index 89950db4..d68156b3 100644 --- a/binding.gyp +++ b/binding.gyp @@ -1,135 +1,28 @@ { - "variables": { - "realm_node_build_as_library%": "0", - "realm_download_binaries%": "1" - }, "includes": [ - "target_defaults.gypi", - "realm.gypi" + "binding.gypi" ], "targets": [ { "target_name": "realm", - "dependencies": [ - "object-store" - ], - "sources": [ - "src/node/platform.cpp", - "src/js_realm.cpp" - ], + "dependencies": [ "realm-js" ], "include_dirs": [ "src" ], - "conditions": [ - ["realm_node_build_as_library", { - "type": "static_library", - "export_dependent_settings": [ "object-store" ] - }, { - "sources": [ - "src/node/node_init.cpp" - ] - }] + "sources": [ + "src/node/node_init.cpp" ] }, { - "target_name": "object-store", - "dependencies": [ "realm-core" ], - "type": "static_library", - "include_dirs": [ - "src/object-store/src", - "src/object-store/external/pegtl" - ], - "defines": [ "REALM_PLATFORM_NODE=1" ], - "sources": [ - "src/object-store/src/binding_callback_thread_observer.cpp", - "src/object-store/src/collection_notifications.cpp", - "src/object-store/src/index_set.cpp", - "src/object-store/src/list.cpp", - "src/object-store/src/object.cpp", - "src/object-store/src/placeholder.cpp", - "src/object-store/src/object_schema.cpp", - "src/object-store/src/object_store.cpp", - "src/object-store/src/results.cpp", - "src/object-store/src/schema.cpp", - "src/object-store/src/shared_realm.cpp", - "src/object-store/src/thread_safe_reference.cpp", - "src/object-store/src/impl/collection_change_builder.cpp", - "src/object-store/src/impl/collection_notifier.cpp", - "src/object-store/src/impl/list_notifier.cpp", - "src/object-store/src/impl/object_notifier.cpp", - "src/object-store/src/impl/primitive_list_notifier.cpp", - "src/object-store/src/impl/realm_coordinator.cpp", - "src/object-store/src/impl/results_notifier.cpp", - "src/object-store/src/impl/transact_log_handler.cpp", - "src/object-store/src/impl/weak_realm_notifier.cpp", - "src/object-store/src/parser/parser.cpp", - "src/object-store/src/parser/query_builder.cpp", - "src/object-store/src/util/format.cpp", - "src/object-store/src/util/uuid.cpp", - ], - "conditions": [ - ["OS=='win'", { - "sources": [ - "src/object-store/src/impl/windows/external_commit_helper.cpp", - ] - }], - ["OS=='linux'", { - "sources": [ - "src/object-store/src/impl/epoll/external_commit_helper.cpp", - ] - }], - ["OS=='mac'", { - "sources": [ - "src/object-store/src/impl/apple/external_commit_helper.cpp", - "src/object-store/src/impl/apple/keychain_helper.cpp", - "src/object-store/src/sync/impl/apple/network_reachability_observer.cpp", - "src/object-store/src/sync/impl/apple/system_configuration.cpp" - ] - }], - ["realm_enable_sync", { - "dependencies": [ "realm-sync" ], - "sources": [ - "src/object-store/src/sync/partial_sync.cpp", - "src/object-store/src/sync/sync_config.cpp", - "src/object-store/src/sync/sync_manager.cpp", - "src/object-store/src/sync/sync_user.cpp", - "src/object-store/src/sync/sync_session.cpp", - "src/object-store/src/sync/sync_config.cpp", - "src/object-store/src/sync/impl/sync_file.cpp", - "src/object-store/src/sync/impl/sync_metadata.cpp" - ], - }] - ], - "all_dependent_settings": { - "defines": [ "REALM_PLATFORM_NODE=1" ], - "include_dirs": [ - "src/object-store/src", - "src/object-store/src/impl", - "src/object-store/src/impl/apple", - "src/object-store/src/parser", - "src/object-store/external/pegtl" - ] - }, - "export_dependent_settings": [ - "<@(_dependencies)" # re-export settings related to linking the realm binaries - ] - } - ], - "conditions": [ - ["not realm_node_build_as_library", { - "targets": [ + "target_name": "action_after_build", + "type": "none", + "dependencies": [ "realm" ], + "copies": [ { - "target_name": "action_after_build", - "type": "none", - "dependencies": [ "<(module_name)" ], - "copies": [ - { - "files": [ "<(PRODUCT_DIR)/<(module_name).node" ], - "destination": "<(module_path)" - } - ] + "files": [ "<(PRODUCT_DIR)/realm.node" ], + "destination": "<(module_path)" } ] - }] + } ] } diff --git a/binding.gypi b/binding.gypi new file mode 100644 index 00000000..eee23216 --- /dev/null +++ b/binding.gypi @@ -0,0 +1,106 @@ +{ + "includes": [ + "target_defaults.gypi", + "realm.gypi" + ], + "targets": [ + { + "target_name": "realm-js", + "dependencies": [ + "vendored-realm", "object-store" + ], + "sources": [ + "src/node/platform.cpp", + "src/js_realm.cpp" + ], + "include_dirs": [ + "src" + ], + "type": "static_library", + "export_dependent_settings": [ "object-store" ] + }, + { + "target_name": "object-store", + "dependencies": [ "realm-core" ], + "type": "static_library", + "include_dirs": [ + "src/object-store/src", + "src/object-store/external/pegtl" + ], + "defines": [ "REALM_PLATFORM_NODE=1" ], + "sources": [ + "src/object-store/src/binding_callback_thread_observer.cpp", + "src/object-store/src/collection_notifications.cpp", + "src/object-store/src/index_set.cpp", + "src/object-store/src/list.cpp", + "src/object-store/src/object.cpp", + "src/object-store/src/placeholder.cpp", + "src/object-store/src/object_schema.cpp", + "src/object-store/src/object_store.cpp", + "src/object-store/src/results.cpp", + "src/object-store/src/schema.cpp", + "src/object-store/src/shared_realm.cpp", + "src/object-store/src/thread_safe_reference.cpp", + "src/object-store/src/impl/collection_change_builder.cpp", + "src/object-store/src/impl/collection_notifier.cpp", + "src/object-store/src/impl/list_notifier.cpp", + "src/object-store/src/impl/object_notifier.cpp", + "src/object-store/src/impl/primitive_list_notifier.cpp", + "src/object-store/src/impl/realm_coordinator.cpp", + "src/object-store/src/impl/results_notifier.cpp", + "src/object-store/src/impl/transact_log_handler.cpp", + "src/object-store/src/impl/weak_realm_notifier.cpp", + "src/object-store/src/parser/parser.cpp", + "src/object-store/src/parser/query_builder.cpp", + "src/object-store/src/util/format.cpp", + "src/object-store/src/util/uuid.cpp" + ], + "conditions": [ + ["OS=='win'", { + "sources": [ + "src/object-store/src/impl/windows/external_commit_helper.cpp", + ] + }], + ["OS=='linux'", { + "sources": [ + "src/object-store/src/impl/epoll/external_commit_helper.cpp", + ] + }], + ["OS=='mac'", { + "sources": [ + "src/object-store/src/impl/apple/external_commit_helper.cpp", + "src/object-store/src/impl/apple/keychain_helper.cpp", + "src/object-store/src/sync/impl/apple/network_reachability_observer.cpp", + "src/object-store/src/sync/impl/apple/system_configuration.cpp" + ] + }], + ["realm_enable_sync", { + "dependencies": [ "realm-sync" ], + "sources": [ + "src/object-store/src/sync/partial_sync.cpp", + "src/object-store/src/sync/sync_config.cpp", + "src/object-store/src/sync/sync_manager.cpp", + "src/object-store/src/sync/sync_user.cpp", + "src/object-store/src/sync/sync_session.cpp", + "src/object-store/src/sync/sync_config.cpp", + "src/object-store/src/sync/impl/sync_file.cpp", + "src/object-store/src/sync/impl/sync_metadata.cpp" + ], + }] + ], + "all_dependent_settings": { + "defines": [ "REALM_PLATFORM_NODE=1" ], + "include_dirs": [ + "src/object-store/src", + "src/object-store/src/impl", + "src/object-store/src/impl/apple", + "src/object-store/src/parser", + "src/object-store/external/pegtl" + ] + }, + "export_dependent_settings": [ + "<@(_dependencies)" # re-export settings related to linking the realm binaries + ] + } + ] +} \ No newline at end of file diff --git a/realm.gypi b/realm.gypi index 7e44262f..7e5238e5 100644 --- a/realm.gypi +++ b/realm.gypi @@ -1,6 +1,8 @@ { "variables": { - "use_realm_debug%": "(download_realm_debug_flag)", ">(download_realm_sync_flag)", "--arch=<(target_arch)" ] + "action": [ "node", "<(realm_js_dir)/scripts/download-realm.js", "<(OS)", ">(download_realm_debug_flag)", ">(download_realm_sync_flag)", "--arch=<(target_arch)" ] } ] }]