Merge bitcoin-core/secp256k1#1553: cmake: Set top-level target output locations
c232486d84Revert "cmake: Set `ENVIRONMENT` property for examples on Windows" (Hennadii Stepanov)26e4a7c214cmake: Set top-level target output locations (Hennadii Stepanov) Pull request description: While testing https://github.com/bitcoin-core/secp256k1/pull/1551, I noticed that when cross-compiling a shared library with examples for Windows, the `ctest` fails to run examples with Wine. Adjusting the `PATH` variable in4af241b320/examples/CMakeLists.txt (L16-L18)does not help because `WINEPATH` is expected. Another issue with the current implementation is that the examples cannot run individually on Windows. This PR resolves both issues by reverting the implementation from https://github.com/bitcoin-core/secp256k1/pull/1290 in favour of the reworked and improved implementation from https://github.com/bitcoin-core/secp256k1/pull/1233. ACKs for top commit: theuni: Concept ACK and utACKc232486d84. real-or-random: utACKc232486d84Tree-SHA512: 479b71d15d5d5670f6f69da3da599240c345711003383ca805c821b67065c9baaf269f987792cf1029211cdbfe799aecd401e6940a471539e3929b4a90e0781d
This commit is contained in:
8
.github/workflows/ci.yml
vendored
8
.github/workflows/ci.yml
vendored
@@ -761,14 +761,14 @@ jobs:
|
|||||||
# Use the bash shell included with Git for Windows.
|
# Use the bash shell included with Git for Windows.
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
cd build/src/RelWithDebInfo && file *tests.exe bench*.exe libsecp256k1-*.dll || true
|
cd build/bin/RelWithDebInfo && file *tests.exe bench*.exe libsecp256k1-*.dll || true
|
||||||
|
|
||||||
- name: Check
|
- name: Check
|
||||||
run: |
|
run: |
|
||||||
ctest -C RelWithDebInfo --test-dir build -j ([int]$env:NUMBER_OF_PROCESSORS + 1)
|
ctest -C RelWithDebInfo --test-dir build -j ([int]$env:NUMBER_OF_PROCESSORS + 1)
|
||||||
build\src\RelWithDebInfo\bench_ecmult.exe
|
build\bin\RelWithDebInfo\bench_ecmult.exe
|
||||||
build\src\RelWithDebInfo\bench_internal.exe
|
build\bin\RelWithDebInfo\bench_internal.exe
|
||||||
build\src\RelWithDebInfo\bench.exe
|
build\bin\RelWithDebInfo\bench.exe
|
||||||
|
|
||||||
win64-native-headers:
|
win64-native-headers:
|
||||||
name: "x64 (MSVC): C++ (public headers)"
|
name: "x64 (MSVC): C++ (public headers)"
|
||||||
|
|||||||
@@ -295,6 +295,15 @@ if(SECP256K1_APPEND_LDFLAGS)
|
|||||||
string(APPEND CMAKE_C_LINK_EXECUTABLE " ${SECP256K1_APPEND_LDFLAGS}")
|
string(APPEND CMAKE_C_LINK_EXECUTABLE " ${SECP256K1_APPEND_LDFLAGS}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(NOT CMAKE_RUNTIME_OUTPUT_DIRECTORY)
|
||||||
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
|
||||||
|
endif()
|
||||||
|
if(NOT CMAKE_LIBRARY_OUTPUT_DIRECTORY)
|
||||||
|
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
|
||||||
|
endif()
|
||||||
|
if(NOT CMAKE_ARCHIVE_OUTPUT_DIRECTORY)
|
||||||
|
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
|
||||||
|
endif()
|
||||||
add_subdirectory(src)
|
add_subdirectory(src)
|
||||||
if(SECP256K1_BUILD_EXAMPLES)
|
if(SECP256K1_BUILD_EXAMPLES)
|
||||||
add_subdirectory(examples)
|
add_subdirectory(examples)
|
||||||
|
|||||||
@@ -10,13 +10,6 @@ function(add_example name)
|
|||||||
)
|
)
|
||||||
set(test_name ${name}_example)
|
set(test_name ${name}_example)
|
||||||
add_test(NAME ${test_name} COMMAND ${target_name})
|
add_test(NAME ${test_name} COMMAND ${target_name})
|
||||||
if(BUILD_SHARED_LIBS AND MSVC)
|
|
||||||
# The DLL must reside either in the same folder where the executable is
|
|
||||||
# or somewhere in PATH. Using the latter option.
|
|
||||||
set_tests_properties(${test_name} PROPERTIES
|
|
||||||
ENVIRONMENT "PATH=$<TARGET_FILE_DIR:secp256k1>;$ENV{PATH}"
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
add_example(ecdsa)
|
add_example(ecdsa)
|
||||||
|
|||||||
Reference in New Issue
Block a user