diff options
Diffstat (limited to 'vcpkg/ports/berkeleydb')
| -rw-r--r-- | vcpkg/ports/berkeleydb/CMakeLists.txt | 278 | ||||
| -rw-r--r-- | vcpkg/ports/berkeleydb/fix-conflict-macro.patch | 123 | ||||
| -rw-r--r-- | vcpkg/ports/berkeleydb/portfile.cmake | 22 | ||||
| -rw-r--r-- | vcpkg/ports/berkeleydb/vcpkg.json | 18 |
4 files changed, 441 insertions, 0 deletions
diff --git a/vcpkg/ports/berkeleydb/CMakeLists.txt b/vcpkg/ports/berkeleydb/CMakeLists.txt new file mode 100644 index 0000000..9297aac --- /dev/null +++ b/vcpkg/ports/berkeleydb/CMakeLists.txt @@ -0,0 +1,278 @@ +cmake_minimum_required(VERSION 3.8)
+project(berkeleydb C CXX)
+
+option(INSTALL_HEADERS "Install header files" ON)
+
+add_definitions(
+ -DWIN32
+ -D_WINDOWS
+ -D_CRT_SECURE_NO_DEPRECATE
+ -D_CRT_NONSTDC_NO_DEPRECATE
+ -D_LIB
+ -DUNICODE
+ -D_UNICODE
+)
+
+if (BUILD_SHARED_LIBS)
+ add_definitions(
+ -DDB_CREATE_DLL
+ -D_USRDLL
+ )
+else()
+ add_definitions(
+ -D_LIB
+ )
+endif()
+
+add_library(libdb48
+ btree/bt_compact.c
+ btree/bt_compare.c
+ btree/bt_compress.c
+ btree/bt_conv.c
+ btree/bt_curadj.c
+ btree/bt_cursor.c
+ btree/bt_delete.c
+ btree/bt_method.c
+ btree/bt_open.c
+ btree/bt_put.c
+ btree/bt_rec.c
+ btree/bt_reclaim.c
+ btree/bt_recno.c
+ btree/bt_rsearch.c
+ btree/bt_search.c
+ btree/bt_split.c
+ btree/bt_stat.c
+ btree/bt_upgrade.c
+ btree/bt_verify.c
+ btree/btree_auto.c
+ db/crdel_auto.c
+ db/crdel_rec.c
+ common/crypto_stub.c
+ cxx/cxx_db.cpp
+ cxx/cxx_dbc.cpp
+ cxx/cxx_dbt.cpp
+ cxx/cxx_env.cpp
+ cxx/cxx_except.cpp
+ cxx/cxx_lock.cpp
+ cxx/cxx_logc.cpp
+ cxx/cxx_mpool.cpp
+ cxx/cxx_multi.cpp
+ cxx/cxx_seq.cpp
+ cxx/cxx_txn.cpp
+ db/db.c
+ db/db_am.c
+ db/db_auto.c
+ common/db_byteorder.c
+ db/db_cam.c
+ db/db_cds.c
+ db/db_conv.c
+ db/db_dispatch.c
+ db/db_dup.c
+ common/db_err.c
+ common/db_getlong.c
+ common/db_idspace.c
+ common/db_compint.c
+ db/db_iface.c
+ db/db_join.c
+ common/db_log2.c
+ db/db_meta.c
+ db/db_method.c
+ db/db_open.c
+ db/db_overflow.c
+ db/db_ovfl_vrfy.c
+ db/db_pr.c
+ db/db_rec.c
+ db/db_reclaim.c
+ db/db_remove.c
+ db/db_rename.c
+ db/db_ret.c
+ db/db_setid.c
+ db/db_setlsn.c
+ common/db_shash.c
+ db/db_sort_multiple.c
+ db/db_stati.c
+ db/db_truncate.c
+ db/db_upg.c
+ db/db_upg_opd.c
+ db/db_vrfy.c
+ db/db_vrfyutil.c
+ db/partition.c
+ dbm/dbm.c
+ dbreg/dbreg.c
+ dbreg/dbreg_auto.c
+ dbreg/dbreg_rec.c
+ dbreg/dbreg_stat.c
+ dbreg/dbreg_util.c
+ common/dbt.c
+ env/env_alloc.c
+ env/env_config.c
+ env/env_failchk.c
+ env/env_file.c
+ env/env_globals.c
+ env/env_method.c
+ env/env_name.c
+ env/env_open.c
+ env/env_recover.c
+ env/env_region.c
+ env/env_register.c
+ env/env_sig.c
+ env/env_stat.c
+ fileops/fileops_auto.c
+ fileops/fop_basic.c
+ fileops/fop_rec.c
+ fileops/fop_util.c
+ hash/hash.c
+ hash/hash_auto.c
+ hash/hash_conv.c
+ hash/hash_dup.c
+ hash/hash_func.c
+ hash/hash_meta.c
+ hash/hash_method.c
+ hash/hash_open.c
+ hash/hash_page.c
+ hash/hash_rec.c
+ hash/hash_reclaim.c
+ hash/hash_stat.c
+ hash/hash_upgrade.c
+ hash/hash_verify.c
+ hmac/hmac.c
+ hsearch/hsearch.c
+ build_windows/libdb.def
+ lock/lock.c
+ lock/lock_deadlock.c
+ lock/lock_failchk.c
+ lock/lock_id.c
+ lock/lock_list.c
+ lock/lock_method.c
+ lock/lock_region.c
+ lock/lock_stat.c
+ lock/lock_timer.c
+ lock/lock_util.c
+ log/log.c
+ log/log_archive.c
+ log/log_compare.c
+ log/log_debug.c
+ log/log_get.c
+ log/log_method.c
+ log/log_put.c
+ log/log_stat.c
+ common/mkpath.c
+ mp/mp_alloc.c
+ mp/mp_bh.c
+ mp/mp_fget.c
+ mp/mp_fmethod.c
+ mp/mp_fopen.c
+ mp/mp_fput.c
+ mp/mp_fset.c
+ mp/mp_method.c
+ mp/mp_mvcc.c
+ mp/mp_region.c
+ mp/mp_register.c
+ mp/mp_resize.c
+ mp/mp_stat.c
+ mp/mp_sync.c
+ mp/mp_trickle.c
+ mutex/mut_alloc.c
+ mutex/mut_failchk.c
+ mutex/mut_method.c
+ mutex/mut_region.c
+ mutex/mut_stat.c
+ mutex/mut_win32.c
+ common/openflags.c
+ os/os_abort.c
+ os/os_addrinfo.c
+ os_windows/os_abs.c
+ os/os_alloc.c
+ os_windows/os_clock.c
+ os_windows/os_config.c
+ os_windows/os_cpu.c
+ os/os_ctime.c
+ os_windows/os_dir.c
+ os_windows/os_errno.c
+ os_windows/os_fid.c
+ os_windows/os_flock.c
+ os_windows/os_fsync.c
+ os_windows/os_getenv.c
+ os_windows/os_handle.c
+ os_windows/os_map.c
+ os_windows/os_mkdir.c
+ os_windows/os_open.c
+ os/os_pid.c
+ os_windows/os_rename.c
+ os/os_root.c
+ os/os_rpath.c
+ os_windows/os_rw.c
+ os_windows/os_seek.c
+ os/os_stack.c
+ os_windows/os_stat.c
+ os/os_tmpdir.c
+ os_windows/os_truncate.c
+ os/os_uid.c
+ os_windows/os_unlink.c
+ os_windows/os_yield.c
+ qam/qam.c
+ qam/qam_auto.c
+ qam/qam_conv.c
+ qam/qam_files.c
+ qam/qam_method.c
+ qam/qam_open.c
+ qam/qam_rec.c
+ qam/qam_stat.c
+ qam/qam_upgrade.c
+ qam/qam_verify.c
+ rep/rep_auto.c
+ rep/rep_backup.c
+ rep/rep_elect.c
+ rep/rep_lease.c
+ rep/rep_log.c
+ rep/rep_method.c
+ rep/rep_record.c
+ rep/rep_region.c
+ rep/rep_stat.c
+ rep/rep_util.c
+ rep/rep_verify.c
+ repmgr/repmgr_auto.c
+ repmgr/repmgr_elect.c
+ repmgr/repmgr_method.c
+ repmgr/repmgr_msg.c
+ repmgr/repmgr_net.c
+ repmgr/repmgr_queue.c
+ repmgr/repmgr_sel.c
+ repmgr/repmgr_stat.c
+ repmgr/repmgr_util.c
+ repmgr/repmgr_windows.c
+ sequence/seq_stat.c
+ sequence/sequence.c
+ hmac/sha1.c
+ clib/strsep.c
+ txn/txn.c
+ txn/txn_auto.c
+ txn/txn_chkpt.c
+ txn/txn_failchk.c
+ txn/txn_method.c
+ txn/txn_rec.c
+ txn/txn_recover.c
+ txn/txn_region.c
+ txn/txn_stat.c
+ txn/txn_util.c
+ common/os_method.c
+ common/util_cache.c
+ common/util_log.c
+ common/util_sig.c
+ common/zerofill.c
+)
+
+include_directories(${CMAKE_CURRENT_SOURCE_DIR} build_windows dbinc)
+
+target_link_libraries(libdb48 PUBLIC ws2_32.lib)
+
+install(TARGETS libdb48
+ RUNTIME DESTINATION bin
+ ARCHIVE DESTINATION lib
+ LIBRARY DESTINATION lib
+)
+
+if(INSTALL_HEADERS)
+ file(GLOB HEADERS build_windows/*.h)
+ install(FILES ${HEADERS} DESTINATION include)
+endif()
\ No newline at end of file diff --git a/vcpkg/ports/berkeleydb/fix-conflict-macro.patch b/vcpkg/ports/berkeleydb/fix-conflict-macro.patch new file mode 100644 index 0000000..c15d7ed --- /dev/null +++ b/vcpkg/ports/berkeleydb/fix-conflict-macro.patch @@ -0,0 +1,123 @@ +diff --git a/dbinc/atomic.h b/dbinc/atomic.h +index 0034dcc..2dd5e03 100644 +--- a/dbinc/atomic.h ++++ b/dbinc/atomic.h +@@ -70,7 +70,7 @@ typedef struct { + * These have no memory barriers; the caller must include them when necessary. + */ + #define atomic_read(p) ((p)->value) +-#define atomic_init(p, val) ((p)->value = (val)) ++#define bdb_atomic_init(p, val) ((p)->value = (val)) + + #ifdef HAVE_ATOMIC_SUPPORT + +@@ -206,7 +206,7 @@ static inline int __atomic_compare_exchange( + #define atomic_dec(env, p) (--(p)->value) + #define atomic_compare_exchange(env, p, oldval, newval) \ + (DB_ASSERT(env, atomic_read(p) == (oldval)), \ +- atomic_init(p, (newval)), 1) ++ bdb_atomic_init(p, (newval)), 1) + #else + #define atomic_inc(env, p) __atomic_inc(env, p) + #define atomic_dec(env, p) __atomic_dec(env, p) +diff --git a/mp/mp_fget.c b/mp/mp_fget.c +index 5fdee5a..452ef17 100644 +--- a/mp/mp_fget.c ++++ b/mp/mp_fget.c +@@ -617,7 +617,7 @@ alloc: /* Allocate a new buffer header and data space. */ + + /* Initialize enough so we can call __memp_bhfree. */ + alloc_bhp->flags = 0; +- atomic_init(&alloc_bhp->ref, 1); ++ bdb_atomic_init(&alloc_bhp->ref, 1); + #ifdef DIAGNOSTIC + if ((uintptr_t)alloc_bhp->buf & (sizeof(size_t) - 1)) { + __db_errx(env, +@@ -911,7 +911,7 @@ alloc: /* Allocate a new buffer header and data space. */ + MVCC_MPROTECT(bhp->buf, mfp->stat.st_pagesize, + PROT_READ); + +- atomic_init(&alloc_bhp->ref, 1); ++ bdb_atomic_init(&alloc_bhp->ref, 1); + MUTEX_LOCK(env, alloc_bhp->mtx_buf); + alloc_bhp->priority = bhp->priority; + alloc_bhp->pgno = bhp->pgno; +diff --git a/mp/mp_mvcc.c b/mp/mp_mvcc.c +index 34467d2..b604388 100644 +--- a/mp/mp_mvcc.c ++++ b/mp/mp_mvcc.c +@@ -276,7 +276,7 @@ __memp_bh_freeze(dbmp, infop, hp, bhp, need_frozenp) + #else + memcpy(frozen_bhp, bhp, SSZA(BH, buf)); + #endif +- atomic_init(&frozen_bhp->ref, 0); ++ bdb_atomic_init(&frozen_bhp->ref, 0); + if (mutex != MUTEX_INVALID) + frozen_bhp->mtx_buf = mutex; + else if ((ret = __mutex_alloc(env, MTX_MPOOL_BH, +@@ -428,7 +428,7 @@ __memp_bh_thaw(dbmp, infop, hp, frozen_bhp, alloc_bhp) + #endif + alloc_bhp->mtx_buf = mutex; + MUTEX_LOCK(env, alloc_bhp->mtx_buf); +- atomic_init(&alloc_bhp->ref, 1); ++ bdb_atomic_init(&alloc_bhp->ref, 1); + F_CLR(alloc_bhp, BH_FROZEN); + } + +diff --git a/mp/mp_region.c b/mp/mp_region.c +index e6cece9..e3e3382 100644 +--- a/mp/mp_region.c ++++ b/mp/mp_region.c +@@ -224,7 +224,7 @@ __memp_init(env, dbmp, reginfo_off, htab_buckets, max_nreg) + MTX_MPOOL_FILE_BUCKET, 0, &htab[i].mtx_hash)) != 0) + return (ret); + SH_TAILQ_INIT(&htab[i].hash_bucket); +- atomic_init(&htab[i].hash_page_dirty, 0); ++ bdb_atomic_init(&htab[i].hash_page_dirty, 0); + } + + /* +@@ -269,7 +269,7 @@ __memp_init(env, dbmp, reginfo_off, htab_buckets, max_nreg) + hp->mtx_hash = (mtx_base == MUTEX_INVALID) ? MUTEX_INVALID : + mtx_base + i; + SH_TAILQ_INIT(&hp->hash_bucket); +- atomic_init(&hp->hash_page_dirty, 0); ++ bdb_atomic_init(&hp->hash_page_dirty, 0); + #ifdef HAVE_STATISTICS + hp->hash_io_wait = 0; + hp->hash_frozen = hp->hash_thawed = hp->hash_frozen_freed = 0; +diff --git a/mutex/mut_method.c b/mutex/mut_method.c +index 2588763..56b6723 100644 +--- a/mutex/mut_method.c ++++ b/mutex/mut_method.c +@@ -426,7 +426,7 @@ atomic_compare_exchange(env, v, oldval, newval) + MUTEX_LOCK(env, mtx); + ret = atomic_read(v) == oldval; + if (ret) +- atomic_init(v, newval); ++ bdb_atomic_init(v, newval); + MUTEX_UNLOCK(env, mtx); + + return (ret); +diff --git a/mutex/mut_tas.c b/mutex/mut_tas.c +index f3922e0..934a654 100644 +--- a/mutex/mut_tas.c ++++ b/mutex/mut_tas.c +@@ -46,7 +46,7 @@ __db_tas_mutex_init(env, mutex, flags) + + #ifdef HAVE_SHARED_LATCHES + if (F_ISSET(mutexp, DB_MUTEX_SHARED)) +- atomic_init(&mutexp->sharecount, 0); ++ bdb_atomic_init(&mutexp->sharecount, 0); + else + #endif + if (MUTEX_INIT(&mutexp->tas)) { +@@ -486,7 +486,7 @@ __db_tas_mutex_unlock(env, mutex) + F_CLR(mutexp, DB_MUTEX_LOCKED); + /* Flush flag update before zeroing count */ + MEMBAR_EXIT(); +- atomic_init(&mutexp->sharecount, 0); ++ bdb_atomic_init(&mutexp->sharecount, 0); + } else { + DB_ASSERT(env, sharecount > 0); + MEMBAR_EXIT(); diff --git a/vcpkg/ports/berkeleydb/portfile.cmake b/vcpkg/ports/berkeleydb/portfile.cmake new file mode 100644 index 0000000..48c93ae --- /dev/null +++ b/vcpkg/ports/berkeleydb/portfile.cmake @@ -0,0 +1,22 @@ +vcpkg_download_distfile(ARCHIVE + URLS "https://download.oracle.com/berkeley-db/db-4.8.30.NC.zip" + FILENAME "db-4.8.30.NC.zip" + SHA512 59c1d2d5a3551f988ab1dc063900572b67ad087537e0d71760de34601f9ebd4d5c070a49b809bec4a599a62417e9a162683ce0f6442deb1a0dadb80764bf6eab +) + +vcpkg_extract_source_archive( + SOURCE_PATH + ARCHIVE "${ARCHIVE}" + PATCHES fix-conflict-macro.patch +) + +file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS_DEBUG -DINSTALL_HEADERS=OFF +) + +vcpkg_cmake_install() + +file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) diff --git a/vcpkg/ports/berkeleydb/vcpkg.json b/vcpkg/ports/berkeleydb/vcpkg.json new file mode 100644 index 0000000..bf9fe13 --- /dev/null +++ b/vcpkg/ports/berkeleydb/vcpkg.json @@ -0,0 +1,18 @@ +{ + "name": "berkeleydb", + "version": "4.8.30", + "port-version": 9, + "description": "BDB - A high-performance embedded database for key/value data.", + "homepage": "https://download.oracle.com/", + "supports": "!(uwp | linux | osx)", + "dependencies": [ + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ] +} |