Skip to content

Commit

Permalink
Use AWSLC_SOURCE_DIR and AWSLC_BINARY_DIR (#2208)
Browse files Browse the repository at this point in the history
  • Loading branch information
justsmth authored Feb 26, 2025
1 parent ae03966 commit 9e80f0a
Show file tree
Hide file tree
Showing 12 changed files with 100 additions and 100 deletions.
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 @@ -1046,7 +1046,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 @@ -1073,11 +1073,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 @@ -1096,7 +1096,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 @@ -1112,7 +1112,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 @@ -1125,7 +1125,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 @@ -1142,7 +1142,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 @@ -1165,7 +1165,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 @@ -1175,7 +1175,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 @@ -1187,8 +1187,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 @@ -1199,8 +1199,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 @@ -1209,16 +1209,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 @@ -1228,15 +1228,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 @@ -1276,7 +1276,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 @@ -580,8 +580,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 @@ -603,10 +603,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 @@ -619,26 +619,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 @@ -652,9 +652,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 @@ -676,7 +676,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 @@ -716,7 +716,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 @@ -738,7 +738,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 @@ -840,7 +840,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 @@ -855,7 +855,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 @@ -880,7 +880,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

0 comments on commit 9e80f0a

Please sign in to comment.