@@ -98,11 +98,11 @@ if(MSVC)
9898 # either MSVC, or clang-cl
9999 string (APPEND CMAKE_C_FLAGS " -FC -permissive- -utf-8 /guard:cf" )
100100 string (APPEND CMAKE_CXX_FLAGS " /EHsc -FC -permissive- -utf-8 /guard:cf" )
101- string (APPEND CMAKE_C_FLAGS_RELEASE " /Zi" )
102- string (APPEND CMAKE_CXX_FLAGS_RELEASE " /Zi" )
101+ string (APPEND CMAKE_C_FLAGS_RELEASE " /Zi /GL " )
102+ string (APPEND CMAKE_CXX_FLAGS_RELEASE " /Zi /GL " )
103103
104- string (APPEND CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO " /DEBUG /INCREMENTAL:NO /debugtype:cv,fixup /guard:cf" )
105- string (APPEND CMAKE_EXE_LINKER_FLAGS_RELEASE " /DEBUG /INCREMENTAL:NO /debugtype:cv,fixup /guard:cf" )
104+ string (APPEND CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO " /DEBUG /INCREMENTAL:NO /debugtype:cv,fixup /guard:cf /OPT:REF /OPT:ICF /LTCG " )
105+ string (APPEND CMAKE_EXE_LINKER_FLAGS_RELEASE " /DEBUG /INCREMENTAL:NO /debugtype:cv,fixup /guard:cf /OPT:REF /OPT:ICF /LTCG " )
106106 if (MSVC_CXX_ARCHITECTURE_ID STREQUAL "x64" )
107107 string (APPEND CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO " /CETCOMPAT" )
108108 string (APPEND CMAKE_EXE_LINKER_FLAGS_RELEASE " /CETCOMPAT" )
@@ -237,9 +237,16 @@ elseif(VCPKG_OFFICIAL_BUILD)
237237 message (FATAL_ERROR "VCPKG_STANDALONE_BUNDLE_SHA is required for official builds." )
238238endif ()
239239
240+ if (VCPKG_ARTIFACTS_SHA)
241+ target_compile_definitions (vcpkglib PUBLIC
242+ "VCPKG_ARTIFACTS_SHA=${VCPKG_ARTIFACTS_SHA} "
243+ )
244+ elseif (VCPKG_OFFICIAL_BUILD)
245+ message (FATAL_ERROR "VCPKG_ARTIFACTS_SHA is required for official builds." )
246+ endif ()
247+
240248file (TO_CMAKE_PATH "${CMAKE_CURRENT_SOURCE_DIR} /vcpkg-artifacts" VCPKG_ARTIFACTS_SOURCE_DIR)
241249if (VCPKG_ARTIFACTS_DEVELOPMENT)
242- file (TO_CMAKE_PATH "${CMAKE_CURRENT_BINARY_DIR} /vcpkg-artifacts" VCPKG_ARTIFACTS_BINARY_DIR )
243250 # The directory constructed by this portion of the build script needs to be kept in sync with
244251 # that created by azure-pipelines/signing.yml
245252
@@ -258,7 +265,7 @@ if (VCPKG_ARTIFACTS_DEVELOPMENT)
258265 add_custom_command (
259266 OUTPUT
260267 "${VCPKG_ARTIFACTS_SOURCE_DIR} /node_modules"
261- COMMAND "${NPM} " ARGS "ci"
268+ COMMAND "${NPM} " ARGS "ci" "--include=dev"
262269 WORKING_DIRECTORY
263270 "${VCPKG_ARTIFACTS_SOURCE_DIR} "
264271 COMMENT
@@ -301,9 +308,8 @@ if (VCPKG_ARTIFACTS_DEVELOPMENT)
301308 set (VCPKG_ARTIFACTS_SOURCES ${VCPKG_ARTIFACTS_ROOT_SOURCES} ${VCPKG_ARTIFACTS_NESTED_SOURCES} )
302309 list (TRANSFORM VCPKG_ARTIFACTS_SOURCES PREPEND "${VCPKG_ARTIFACTS_SOURCE_DIR} /" )
303310
304- set (VCPKG_ARTIFACTS_BINARIES ${VCPKG_ARTIFACTS_ROOT_SOURCES} ${VCPKG_ARTIFACTS_NESTED_SOURCES} )
305- list (TRANSFORM VCPKG_ARTIFACTS_BINARIES PREPEND "${VCPKG_ARTIFACTS_BINARY_DIR} /" )
306- list (TRANSFORM VCPKG_ARTIFACTS_BINARIES REPLACE "\\ .ts" ".js" )
311+ set (VCPKG_ARTIFACTS_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR} /vcpkg-artifacts-build" )
312+ set (VCPKG_ARTIFACTS_BINARY "${CMAKE_CURRENT_BINARY_DIR} /vcpkg-artifacts.mjs" )
307313 add_custom_command (
308314 OUTPUT "${VCPKG_ARTIFACTS_SOURCE_DIR} /locales/messages.json"
309315 COMMAND "${NODEJS} " ARGS "${VCPKG_ARTIFACTS_SOURCE_DIR} /node_modules/translate-strings/dist/main.js" "." "--json"
@@ -317,74 +323,30 @@ if (VCPKG_ARTIFACTS_DEVELOPMENT)
317323
318324 add_custom_command (
319325 OUTPUT
320- ${VCPKG_ARTIFACTS_BINARIES}
321- "${VCPKG_ARTIFACTS_BINARY_DIR} /package.json"
322- "${VCPKG_ARTIFACTS_BINARY_DIR} /package-lock.json"
323- "${VCPKG_ARTIFACTS_BINARY_DIR} /.npmrc"
324- "${VCPKG_ARTIFACTS_BINARY_DIR} /mocha-config.yaml"
325- "${VCPKG_ARTIFACTS_BINARY_DIR} /locales/messages.json"
326- "${VCPKG_ARTIFACTS_BINARY_DIR} /artifacts-development.txt"
327- COMMAND
328- "${CMAKE_COMMAND} " ARGS -E rm -rf "${VCPKG_ARTIFACTS_BINARY_DIR} "
329- COMMAND
330- "${CMAKE_COMMAND} " ARGS -E make_directory "${VCPKG_ARTIFACTS_BINARY_DIR} "
331- COMMAND
332- "${CMAKE_COMMAND} " ARGS -E make_directory "${VCPKG_ARTIFACTS_BINARY_DIR} /locales"
333- COMMAND
334- "${CMAKE_COMMAND} " ARGS -E copy_directory
335- "${VCPKG_ARTIFACTS_SOURCE_DIR} /node_modules"
336- "${VCPKG_ARTIFACTS_BINARY_DIR} /node_modules"
337- COMMAND
338- "${CMAKE_COMMAND} " ARGS -E copy_directory
339- "${VCPKG_ARTIFACTS_SOURCE_DIR} /test-resources"
340- "${VCPKG_ARTIFACTS_BINARY_DIR} /test-resources"
341- # Files are after directories for more accurate cmake tracking of interrupted runs
342- COMMAND
343- "${CMAKE_COMMAND} " ARGS -E copy
344- "${VCPKG_ARTIFACTS_SOURCE_DIR} /package.json"
345- "${VCPKG_ARTIFACTS_SOURCE_DIR} /package-lock.json"
346- "${VCPKG_ARTIFACTS_SOURCE_DIR} /.npmrc"
347- "${VCPKG_ARTIFACTS_SOURCE_DIR} /mocha-config.yaml"
348- "${VCPKG_ARTIFACTS_BINARY_DIR} "
349- COMMAND
350- "${CMAKE_COMMAND} " ARGS -E copy
351- "${VCPKG_ARTIFACTS_SOURCE_DIR} /locales/messages.json"
352- "${VCPKG_ARTIFACTS_BINARY_DIR} /locales/messages.json"
326+ ${VCPKG_ARTIFACTS_BINARY}
353327 COMMAND
354- "${NODEJS} " ARGS "${VCPKG_ARTIFACTS_SOURCE_DIR} /node_modules/typescript/bin/tsc "
355- -p " ${VCPKG_ARTIFACTS_SOURCE_DIR} "
356- --outDir "${VCPKG_ARTIFACTS_BINARY_DIR } "
328+ "${NODEJS} " ARGS "${VCPKG_ARTIFACTS_SOURCE_DIR} /node_modules/@vercel/ncc/dist/ncc/cli.js "
329+ build "main.ts "
330+ --out "${VCPKG_ARTIFACTS_BUILD_DIR } "
357331 COMMAND
358- "${CMAKE_COMMAND} " ARGS -E touch
359- "${VCPKG_ARTIFACTS_BINARY_DIR} /artifacts-development.txt"
332+ "${CMAKE_COMMAND} " ARGS -E copy "${VCPKG_ARTIFACTS_BUILD_DIR} /index.js" "${VCPKG_ARTIFACTS_BINARY} "
333+ WORKING_DIRECTORY
334+ "${VCPKG_ARTIFACTS_SOURCE_DIR} "
360335 DEPENDS
336+ npm-restore
361337 ${VCPKG_ARTIFACTS_SOURCES}
362338 "${VCPKG_ARTIFACTS_SOURCE_DIR} /tsconfig.json"
363339 "${VCPKG_ARTIFACTS_SOURCE_DIR} /package.json"
364340 "${VCPKG_ARTIFACTS_SOURCE_DIR} /package-lock.json"
365341 "${VCPKG_ARTIFACTS_SOURCE_DIR} /.npmrc"
366- "${VCPKG_ARTIFACTS_SOURCE_DIR} /mocha-config.yaml "
342+ "${VCPKG_ARTIFACTS_SOURCE_DIR} /.mocharc.json "
367343 "${VCPKG_ARTIFACTS_SOURCE_DIR} /locales/messages.json"
368344 COMMENT
369345 "Building vcpkg-artifacts..."
370346 VERBATIM
371347 )
372348
373- add_custom_target (vcpkg-artifacts-target
374- ALL
375- DEPENDS
376- ${VCPKG_ARTIFACTS_BINARIES}
377- "${VCPKG_ARTIFACTS_BINARY_DIR} /package.json"
378- "${VCPKG_ARTIFACTS_BINARY_DIR} /package-lock.json"
379- "${VCPKG_ARTIFACTS_BINARY_DIR} /.npmrc"
380- "${VCPKG_ARTIFACTS_BINARY_DIR} /mocha-config.yaml"
381- "${VCPKG_ARTIFACTS_BINARY_DIR} /locales/messages.json"
382- "${VCPKG_ARTIFACTS_BINARY_DIR} /artifacts-development.txt"
383- npm-restore
384- )
385- set_target_properties (vcpkg-artifacts-target
386- PROPERTIES
387- ADDITIONAL_CLEAN_FILES "${VCPKG_ARTIFACTS_BINARY_DIR} " )
349+ add_custom_target (vcpkg-artifacts-target ALL DEPENDS "${VCPKG_ARTIFACTS_BINARY} " )
388350endif ()
389351
390352set (CPP_ATOMIC_LIBRARY "" )
@@ -431,6 +393,10 @@ elseif(NOT MSVC)
431393 target_compile_options (vcpkglib PRIVATE -include "${CMAKE_CURRENT_SOURCE_DIR} /include/pch.h" )
432394endif ()
433395
396+ if (CMAKE_SYSTEM_NAME STREQUAL "SunOS" )
397+ target_link_libraries (vcpkglib PRIVATE socket)
398+ endif ()
399+
434400if (ANDROID AND CMAKE_SYSTEM_VERSION LESS "28" )
435401 # pkg install libandroid-spawn
436402 target_link_libraries (vcpkglib PRIVATE android-spawn)
@@ -462,7 +428,7 @@ add_custom_target(vcpkg-ps1 ALL DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/vcpkg-shell
462428# === Target: vcpkg ===
463429
464430add_executable (vcpkg ${VCPKG_SOURCES} "${CMAKE_CURRENT_SOURCE_DIR} /src/vcpkg.manifest" )
465- target_link_libraries (vcpkg PRIVATE vcpkglib)
431+ target_link_libraries (vcpkg PRIVATE vcpkglib ${CMAKE_DL_LIBS} )
466432
467433if (VCPKG_ADD_SOURCELINK)
468434 if (VCPKG_VERSION STREQUAL "unknownhash" )
@@ -514,11 +480,13 @@ if (BUILD_TESTING)
514480 target_compile_options (vcpkg-test PRIVATE -include "${CMAKE_CURRENT_SOURCE_DIR} /include/pch.h" )
515481 endif ()
516482
517- add_test (NAME default COMMAND "${CMAKE_COMMAND} " -E env LC_ALL=C "$<TARGET_FILE:vcpkg-test>" --order rand --rng-seed time)
518-
519- if (VCPKG_BUILD_BENCHMARKING)
483+ add_test (NAME vcpkg-test COMMAND "${CMAKE_COMMAND} " -E env LC_ALL=C "$<TARGET_FILE:vcpkg-test>" --order rand --rng-seed time)
484+ if (VCPKG_BUILD_BENCHMARKING)
520485 target_compile_options (vcpkg-test PRIVATE -DCATCH_CONFIG_ENABLE_BENCHMARKING)
521486 endif ()
487+ if (VCPKG_ARTIFACTS_DEVELOPMENT)
488+ add_test (NAME artifacts COMMAND "${NODEJS} " "${VCPKG_ARTIFACTS_SOURCE_DIR} /node_modules/mocha/bin/mocha.js" "--import=tsx" WORKING_DIRECTORY "${VCPKG_ARTIFACTS_SOURCE_DIR} " )
489+ endif ()
522490endif ()
523491
524492# === Target: vcpkg-fuzz ===
0 commit comments