Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use AWSLC_SOURCE_DIR and AWSLC_BINARY_DIR #2208

Merged
merged 2 commits into from
Feb 26, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 26 additions & 26 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
if (NOT DEFINED CMAKE_C_STANDARD)
try_compile(
RESULT
${PROJECT_BINARY_DIR}
${AWSLC_BINARY_DIR}
SOURCES "${CMAKE_CURRENT_LIST_DIR}/tests/compiler_features_tests/c11.c"
COMPILE_DEFINITIONS -c -std=c11)
if(RESULT)
Expand Down Expand Up @@ -210,7 +210,7 @@ if(BORINGSSL_PREFIX AND BORINGSSL_PREFIX_SYMBOLS AND GO_EXECUTABLE)
if(IS_ABSOLUTE ${BORINGSSL_PREFIX_SYMBOLS})
set(BORINGSSL_PREFIX_SYMBOLS_PATH ${BORINGSSL_PREFIX_SYMBOLS})
else()
set(BORINGSSL_PREFIX_SYMBOLS_PATH ${PROJECT_BINARY_DIR}/${BORINGSSL_PREFIX_SYMBOLS})
set(BORINGSSL_PREFIX_SYMBOLS_PATH ${AWSLC_BINARY_DIR}/${BORINGSSL_PREFIX_SYMBOLS})
endif()

add_custom_command(
Expand Down Expand Up @@ -244,7 +244,7 @@ elseif(BORINGSSL_PREFIX AND BORINGSSL_PREFIX_HEADERS)
if(IS_ABSOLUTE ${BORINGSSL_PREFIX_HEADERS})
set(BORINGSSL_PREFIX_HEADERS_PATH ${BORINGSSL_PREFIX_HEADERS})
else()
set(BORINGSSL_PREFIX_HEADERS_PATH ${PROJECT_BINARY_DIR}/${BORINGSSL_PREFIX_HEADERS})
set(BORINGSSL_PREFIX_HEADERS_PATH ${AWSLC_BINARY_DIR}/${BORINGSSL_PREFIX_HEADERS})
endif()

file(COPY ${BORINGSSL_PREFIX_HEADERS_PATH}/openssl/boringssl_prefix_symbols.h DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/symbol_prefix_include/openssl)
Expand Down Expand Up @@ -280,7 +280,7 @@ endif()
macro(check_compiler file_to_test flag_to_set)
try_compile(
RESULT
${PROJECT_BINARY_DIR}
${AWSLC_BINARY_DIR}
SOURCES "${CMAKE_CURRENT_LIST_DIR}/tests/compiler_features_tests/${file_to_test}"
COMPILE_DEFINITIONS "-Werror"
OUTPUT_VARIABLE ERROR_MESSAGE)
Expand Down Expand Up @@ -1053,7 +1053,7 @@ endif()

if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
set(HANDSHAKER_ARGS "-handshaker-path" $<TARGET_FILE:handshaker>)
set(SSL_TRANSFER_ARGS "-ssl-transfer-test-file" ${PROJECT_SOURCE_DIR}/ssl/test/runner/ssl_transfer/test_case_names.txt)
set(SSL_TRANSFER_ARGS "-ssl-transfer-test-file" ${AWSLC_SOURCE_DIR}/ssl/test/runner/ssl_transfer/test_case_names.txt)
if(DEFINED ENV{AWS_LC_SSL_RUNNER_START_INDEX})
set(AWS_LC_SSL_RUNNER_INDEX_FILTER "-test-case-start-index" $ENV{AWS_LC_SSL_RUNNER_START_INDEX})
endif()
Expand All @@ -1080,11 +1080,11 @@ if(BUILD_TESTING)
if(GO_EXECUTABLE)
if(FIPS)
if(MSVC)
set(ACVP_TOOL ${PROJECT_BINARY_DIR}/acvptool.exe)
set(TEST_WRAPPER ${PROJECT_BINARY_DIR}/testmodulewrapper.exe)
set(ACVP_TOOL ${AWSLC_BINARY_DIR}/acvptool.exe)
set(TEST_WRAPPER ${AWSLC_BINARY_DIR}/testmodulewrapper.exe)
else()
set(ACVP_TOOL ${PROJECT_BINARY_DIR}/acvptool)
set(TEST_WRAPPER ${PROJECT_BINARY_DIR}/testmodulewrapper)
set(ACVP_TOOL ${AWSLC_BINARY_DIR}/acvptool)
set(TEST_WRAPPER ${AWSLC_BINARY_DIR}/testmodulewrapper)
endif()

# Read util/go_fips_tests.txt into a CMake variable.
Expand All @@ -1103,7 +1103,7 @@ if(BUILD_TESTING)
# us hash anywhere from 1-8 gigabytes of memory, so running multiple at the same time cause a
# failure on most machines due to a lack of memory.
set(acvp_sha_test_commands)
file(GLOB acvp_sha_tests "${PROJECT_SOURCE_DIR}/util/fipstools/acvp/acvptool/test/sha-tests/*.json")
file(GLOB acvp_sha_tests "${AWSLC_SOURCE_DIR}/util/fipstools/acvp/acvptool/test/sha-tests/*.json")
foreach(test_path ${acvp_sha_tests})
get_filename_component(test_name ${test_path} NAME)
list(APPEND acvp_sha_test_commands
Expand All @@ -1119,7 +1119,7 @@ if(BUILD_TESTING)
boringssl.googlesource.com/boringssl/util/fipstools/acvp/acvptool
COMMAND ${GO_EXECUTABLE} build -o ${TEST_WRAPPER}
boringssl.googlesource.com/boringssl/util/fipstools/acvp/acvptool/testmodulewrapper
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
WORKING_DIRECTORY ${AWSLC_SOURCE_DIR}
DEPENDS modulewrapper
${MAYBE_USES_TERMINAL})

Expand All @@ -1132,7 +1132,7 @@ if(BUILD_TESTING)
-module-wrappers modulewrapper:$<TARGET_FILE:modulewrapper>,testmodulewrapper:${TEST_WRAPPER}
-tests tests.json
${acvp_sha_test_commands}
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/util/fipstools/acvp/acvptool/test
WORKING_DIRECTORY ${AWSLC_SOURCE_DIR}/util/fipstools/acvp/acvptool/test
DEPENDS build_acvp_tool
${MAYBE_USES_TERMINAL})

Expand All @@ -1149,7 +1149,7 @@ if(BUILD_TESTING)
add_custom_target(
macho_parser_tests
COMMAND ./util/fipstools/inject_hash/macho_parser/tests/test_macho_parser
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
WORKING_DIRECTORY ${AWSLC_BINARY_DIR}
DEPENDS test_macho_parser
)
add_dependencies(fips_specific_tests_if_any macho_parser_tests)
Expand All @@ -1172,7 +1172,7 @@ if(BUILD_TESTING)
COMMAND cd ssl/test/runner &&
${GO_EXECUTABLE} test -timeout ${GO_TEST_TIMEOUT} -shim-path $<TARGET_FILE:bssl_shim>
${HANDSHAKER_ARGS} ${RUNNER_ARGS} ${AWS_LC_SSL_RUNNER_INDEX_FILTER} ${SSL_TRANSFER_ARGS}
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
WORKING_DIRECTORY ${AWSLC_SOURCE_DIR}
DEPENDS bssl_shim handshaker fips_specific_tests_if_any
${MAYBE_USES_TERMINAL})

Expand All @@ -1182,7 +1182,7 @@ if(BUILD_TESTING)
COMMAND cd ssl/test/runner &&
${GO_EXECUTABLE} test -timeout ${GO_TEST_TIMEOUT} -shim-path $<TARGET_FILE:bssl_shim> -valgrind
${HANDSHAKER_ARGS} ${RUNNER_ARGS} ${AWS_LC_SSL_RUNNER_INDEX_FILTER} ${SSL_TRANSFER_ARGS}
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
WORKING_DIRECTORY ${AWSLC_SOURCE_DIR}
DEPENDS bssl_shim handshaker fips_specific_tests_if_any
${MAYBE_USES_TERMINAL})

Expand All @@ -1194,8 +1194,8 @@ if(BUILD_TESTING)
COMMAND ${CMAKE_COMMAND} -E echo
COMMAND ${CMAKE_COMMAND} -E echo "Running unit tests"
COMMAND ${GO_EXECUTABLE} run util/all_tests.go -build-dir
${PROJECT_BINARY_DIR}
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
${AWSLC_BINARY_DIR}
WORKING_DIRECTORY ${AWSLC_SOURCE_DIR}
DEPENDS all_tests run_ssl_runner_tests
${MAYBE_USES_TERMINAL})
else()
Expand All @@ -1206,8 +1206,8 @@ if(BUILD_TESTING)
COMMAND ${CMAKE_COMMAND} -E echo
COMMAND ${CMAKE_COMMAND} -E echo "Running unit tests"
COMMAND ${GO_EXECUTABLE} run util/all_tests.go -build-dir
${PROJECT_BINARY_DIR} -ssl-tests=false
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
${AWSLC_BINARY_DIR} -ssl-tests=false
WORKING_DIRECTORY ${AWSLC_SOURCE_DIR}
DEPENDS all_tests fips_specific_tests_if_any
${MAYBE_USES_TERMINAL}
)
Expand All @@ -1216,16 +1216,16 @@ if(BUILD_TESTING)
add_custom_target(
run_tests_valgrind
COMMAND ${GO_EXECUTABLE} run util/all_tests.go -build-dir
${PROJECT_BINARY_DIR} -valgrind=true -valgrind-supp-dir="tests/ci"
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
${AWSLC_BINARY_DIR} -valgrind=true -valgrind-supp-dir="tests/ci"
WORKING_DIRECTORY ${AWSLC_SOURCE_DIR}
DEPENDS all_tests
${MAYBE_USES_TERMINAL})

add_custom_target(
run_tests_with_sde
COMMAND ${GO_EXECUTABLE} run util/all_tests.go -build-dir
${PROJECT_BINARY_DIR} -sde=true -sde-path="$ENV{SDEROOT}/sde"
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
${AWSLC_BINARY_DIR} -sde=true -sde-path="$ENV{SDEROOT}/sde"
WORKING_DIRECTORY ${AWSLC_SOURCE_DIR}
DEPENDS all_tests
${MAYBE_USES_TERMINAL})
else()
Expand All @@ -1235,15 +1235,15 @@ if(BUILD_TESTING)
COMMAND crypto_test
COMMAND urandom_test
COMMAND ssl_test
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
WORKING_DIRECTORY ${AWSLC_SOURCE_DIR}
DEPENDS all_tests
${MAYBE_USES_TERMINAL})
else()
add_custom_command(
run_minimal_tests
COMMAND crypto_test
COMMAND urandom_test
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
WORKING_DIRECTORY ${AWSLC_SOURCE_DIR}
DEPENDS all_tests
${MAYBE_USES_TERMINAL}
)
Expand Down Expand Up @@ -1283,7 +1283,7 @@ join_paths(libdir_for_pc_file "\${prefix}" "${CMAKE_INSTALL_LIBDIR}")
join_paths(includedir_for_pc_file "\${prefix}" "${CMAKE_INSTALL_INCLUDEDIR}")

foreach(in_file ${OPENSSL_PKGCONFIGS})
file(RELATIVE_PATH in_file ${PROJECT_SOURCE_DIR} ${in_file})
file(RELATIVE_PATH in_file ${AWSLC_SOURCE_DIR} ${in_file})
string(REPLACE ".in" "" pc_file ${in_file})
configure_file(${in_file} ${CMAKE_CURRENT_BINARY_DIR}/${pc_file} @ONLY)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${pc_file} DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
Expand Down
56 changes: 28 additions & 28 deletions crypto/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ function(msbuild_aarch64_asm)
COMMAND "${CMAKE_ASM_COMPILER}"
--target=arm64-pc-windows-msvc
/c
/I "${PROJECT_BINARY_DIR}/symbol_prefix_include/"
/I "${PROJECT_SOURCE_DIR}/include"
/I "${AWSLC_BINARY_DIR}/symbol_prefix_include/"
/I "${AWSLC_SOURCE_DIR}/include"
/o "${OBJ_FILE}"
"${ASM_FILE}"
DEPENDS ${ASM_FILE}
Expand Down Expand Up @@ -152,13 +152,13 @@ if(PERL_EXECUTABLE)
COMMAND ${PERL_COMMAND}
DEPENDS
${src}
${PROJECT_SOURCE_DIR}/crypto/perlasm/arm-xlate.pl
${PROJECT_SOURCE_DIR}/crypto/perlasm/ppc-xlate.pl
${PROJECT_SOURCE_DIR}/crypto/perlasm/x86_64-xlate.pl
${PROJECT_SOURCE_DIR}/crypto/perlasm/x86asm.pl
${PROJECT_SOURCE_DIR}/crypto/perlasm/x86gas.pl
${PROJECT_SOURCE_DIR}/crypto/perlasm/x86masm.pl
${PROJECT_SOURCE_DIR}/crypto/perlasm/x86nasm.pl
${AWSLC_SOURCE_DIR}/crypto/perlasm/arm-xlate.pl
${AWSLC_SOURCE_DIR}/crypto/perlasm/ppc-xlate.pl
${AWSLC_SOURCE_DIR}/crypto/perlasm/x86_64-xlate.pl
${AWSLC_SOURCE_DIR}/crypto/perlasm/x86asm.pl
${AWSLC_SOURCE_DIR}/crypto/perlasm/x86gas.pl
${AWSLC_SOURCE_DIR}/crypto/perlasm/x86masm.pl
${AWSLC_SOURCE_DIR}/crypto/perlasm/x86nasm.pl
WORKING_DIRECTORY .
)
endfunction()
Expand Down Expand Up @@ -582,8 +582,8 @@ add_library(
target_compile_definitions(crypto_objects PRIVATE BORINGSSL_IMPLEMENTATION)
# For the prefix build, the object files need the prefix header files to build.
add_dependencies(crypto_objects boringssl_prefix_symbols)
target_include_directories(crypto_objects BEFORE PRIVATE ${PROJECT_BINARY_DIR}/symbol_prefix_include)
target_include_directories(crypto_objects PRIVATE ${PROJECT_SOURCE_DIR}/include)
target_include_directories(crypto_objects BEFORE PRIVATE ${AWSLC_BINARY_DIR}/symbol_prefix_include)
target_include_directories(crypto_objects PRIVATE ${AWSLC_SOURCE_DIR}/include)

function(build_libcrypto name module_source)
if(FIPS AND ENABLE_FIPS_ENTROPY_CPU_JITTER)
Expand All @@ -605,10 +605,10 @@ function(build_libcrypto name module_source)
endif()

add_dependencies(${name} boringssl_prefix_symbols)
target_include_directories(${name} BEFORE PRIVATE ${PROJECT_BINARY_DIR}/symbol_prefix_include)
target_include_directories(${name} BEFORE PRIVATE ${AWSLC_BINARY_DIR}/symbol_prefix_include)

target_include_directories(${name} PUBLIC
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
$<BUILD_INTERFACE:${AWSLC_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:include>)
endfunction()

Expand All @@ -621,26 +621,26 @@ if(FIPS_SHARED)
build_libcrypto(precrypto $<TARGET_OBJECTS:fipsmodule>)
add_executable(fips_empty_main fipsmodule/fips_empty_main.c)
target_link_libraries(fips_empty_main PUBLIC precrypto)
target_include_directories(fips_empty_main PRIVATE ${PROJECT_SOURCE_DIR}/include)
target_include_directories(fips_empty_main BEFORE PRIVATE ${PROJECT_BINARY_DIR}/symbol_prefix_include)
target_include_directories(fips_empty_main PRIVATE ${AWSLC_SOURCE_DIR}/include)
target_include_directories(fips_empty_main BEFORE PRIVATE ${AWSLC_BINARY_DIR}/symbol_prefix_include)
add_custom_command(OUTPUT generated_fips_shared_support.c
COMMAND ${GO_EXECUTABLE} run
${PROJECT_SOURCE_DIR}/util/fipstools/capture_hash/capture_hash.go
${AWSLC_SOURCE_DIR}/util/fipstools/capture_hash/capture_hash.go
-in-executable $<TARGET_FILE:fips_empty_main> > generated_fips_shared_support.c
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
DEPENDS fips_empty_main ${PROJECT_SOURCE_DIR}/util/fipstools/capture_hash/capture_hash.go
DEPENDS fips_empty_main ${AWSLC_SOURCE_DIR}/util/fipstools/capture_hash/capture_hash.go
)
add_library(
generated_fipsmodule

OBJECT

generated_fips_shared_support.c
${PROJECT_SOURCE_DIR}/crypto/fipsmodule/cpucap/cpucap.c
${AWSLC_SOURCE_DIR}/crypto/fipsmodule/cpucap/cpucap.c
)
add_dependencies(generated_fipsmodule boringssl_prefix_symbols)
target_include_directories(generated_fipsmodule PRIVATE ${PROJECT_SOURCE_DIR}/include)
target_include_directories(generated_fipsmodule BEFORE PRIVATE ${PROJECT_BINARY_DIR}/symbol_prefix_include)
target_include_directories(generated_fipsmodule PRIVATE ${AWSLC_SOURCE_DIR}/include)
target_include_directories(generated_fipsmodule BEFORE PRIVATE ${AWSLC_BINARY_DIR}/symbol_prefix_include)

build_libcrypto(crypto $<TARGET_OBJECTS:generated_fipsmodule>)
else()
Expand All @@ -654,9 +654,9 @@ if(FIPS_SHARED)
add_custom_command(
TARGET crypto POST_BUILD
COMMAND ${GO_EXECUTABLE} run
${PROJECT_SOURCE_DIR}/util/fipstools/inject_hash/inject_hash.go
${AWSLC_SOURCE_DIR}/util/fipstools/inject_hash/inject_hash.go
-o $<TARGET_FILE:crypto> -in-object $<TARGET_FILE:crypto> ${INJECT_HASH_APPLE_FLAG}
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
WORKING_DIRECTORY ${AWSLC_SOURCE_DIR}
)

# On macOS 11 and higher on Apple Silicon, codesigning is mandatory for
Expand All @@ -678,7 +678,7 @@ if(FIPS_SHARED)
add_custom_command(
TARGET crypto POST_BUILD
COMMAND codesign -s - $<TARGET_FILE:crypto>
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
WORKING_DIRECTORY ${AWSLC_SOURCE_DIR}
)
endif()

Expand Down Expand Up @@ -718,7 +718,7 @@ if(BUILD_TESTING)
target_compile_definitions(${executable_name} PRIVATE BORINGSSL_IMPLEMENTATION)
target_link_libraries(${executable_name} boringssl_gtest_main)
add_dependencies(${executable_name} boringssl_prefix_symbols)
target_include_directories(${executable_name} BEFORE PRIVATE ${PROJECT_BINARY_DIR}/symbol_prefix_include)
target_include_directories(${executable_name} BEFORE PRIVATE ${AWSLC_BINARY_DIR}/symbol_prefix_include)
add_dependencies(all_tests ${executable_name})
set_test_location(${executable_name})
endmacro()
Expand All @@ -740,7 +740,7 @@ if(BUILD_TESTING)

add_dependencies(${RANDOM_TEST_EXEC} boringssl_prefix_symbols)
target_link_libraries(${RANDOM_TEST_EXEC} test_support_lib boringssl_gtest crypto)
target_include_directories(${RANDOM_TEST_EXEC} BEFORE PRIVATE ${PROJECT_BINARY_DIR}/symbol_prefix_include)
target_include_directories(${RANDOM_TEST_EXEC} BEFORE PRIVATE ${AWSLC_BINARY_DIR}/symbol_prefix_include)

add_dependencies(all_tests ${RANDOM_TEST_EXEC})

Expand Down Expand Up @@ -841,7 +841,7 @@ if(BUILD_TESTING)

add_dependencies(${CRYPTO_TEST_EXEC} boringssl_prefix_symbols)
target_link_libraries(${CRYPTO_TEST_EXEC} boringssl_gtest_main)
target_include_directories(${CRYPTO_TEST_EXEC} BEFORE PRIVATE ${PROJECT_BINARY_DIR}/symbol_prefix_include)
target_include_directories(${CRYPTO_TEST_EXEC} BEFORE PRIVATE ${AWSLC_BINARY_DIR}/symbol_prefix_include)
if(MSVC)
target_link_libraries(${CRYPTO_TEST_EXEC} ws2_32)
else()
Expand All @@ -856,7 +856,7 @@ if(BUILD_TESTING)
set_test_location(${DYNAMIC_LOADING_TEST_EXEC})

add_dependencies(${DYNAMIC_LOADING_TEST_EXEC} boringssl_prefix_symbols)
target_include_directories(${DYNAMIC_LOADING_TEST_EXEC} BEFORE PRIVATE ${PROJECT_BINARY_DIR}/symbol_prefix_include)
target_include_directories(${DYNAMIC_LOADING_TEST_EXEC} BEFORE PRIVATE ${AWSLC_BINARY_DIR}/symbol_prefix_include)

set(DYNAMIC_LINKER_LIB "")
if(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR APPLE OR ANDROID)
Expand All @@ -881,7 +881,7 @@ if(BUILD_TESTING)
set_test_location(${RWLOCK_STATIC_INIT_TEST_EXEC})

target_link_libraries(${RWLOCK_STATIC_INIT_TEST_EXEC} crypto)
target_include_directories(${RWLOCK_STATIC_INIT_TEST_EXEC} BEFORE PRIVATE ${PROJECT_BINARY_DIR}/symbol_prefix_include)
target_include_directories(${RWLOCK_STATIC_INIT_TEST_EXEC} BEFORE PRIVATE ${AWSLC_BINARY_DIR}/symbol_prefix_include)
if(MSVC)
target_link_libraries(${RWLOCK_STATIC_INIT_TEST_EXEC} ws2_32)
else()
Expand Down
Loading
Loading