feat / work with cross-compile
can compile the target ldpc_generators and generate_T with cross-compiler
This commit is contained in:
committed by
Robert Schmidt
parent
73bc34b278
commit
1f2098fcce
@@ -5,13 +5,23 @@ add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/generator_cnProc_avx512 ldpc/generato
|
||||
|
||||
# custom target to build all generators
|
||||
add_custom_target(ldpc_generators)
|
||||
|
||||
# if (CROSS_COMPILE)
|
||||
# find_package(bnProc_gen_avx2)
|
||||
# find_package(bnProc_gen_128)
|
||||
# find_package(bnProc_gen_avx512)
|
||||
# find_package(cnProc_gen_avx2)
|
||||
# find_package(cnProc_gen_128)
|
||||
# find_package(cnProc_gen_avx512)
|
||||
# endif()
|
||||
|
||||
add_dependencies(ldpc_generators
|
||||
bnProc_gen_avx2
|
||||
bnProc_gen_128
|
||||
bnProc_gen_avx512
|
||||
cnProc_gen_avx2
|
||||
cnProc_gen_128
|
||||
cnProc_gen_avx512)
|
||||
bnProc_gen_avx2_files
|
||||
bnProc_gen_128_files
|
||||
bnProc_gen_avx512_files
|
||||
cnProc_gen_avx2_files
|
||||
cnProc_gen_128_files
|
||||
cnProc_gen_avx512_files)
|
||||
|
||||
add_library(ldpc_gen_HEADERS INTERFACE)
|
||||
target_link_libraries(ldpc_gen_HEADERS INTERFACE
|
||||
|
||||
@@ -1,55 +1,89 @@
|
||||
add_executable(bnProc_gen_avx2
|
||||
bnProc_gen_BG1_avx2.c
|
||||
bnProc_gen_BG2_avx2.c
|
||||
bnProcPc_gen_BG1_avx2.c
|
||||
bnProcPc_gen_BG2_avx2.c
|
||||
main.c)
|
||||
add_executable(bnProc_gen_128
|
||||
bnProc_gen_BG1_128.c
|
||||
bnProc_gen_BG2_128.c
|
||||
bnProcPc_gen_BG1_128.c
|
||||
bnProcPc_gen_BG2_128.c
|
||||
main128.c)
|
||||
|
||||
target_compile_options(bnProc_gen_avx2 PRIVATE -W -Wall )
|
||||
if (CROSS_COMPILE)
|
||||
find_package(bnProc_gen_128)
|
||||
find_package(bnProc_gen_avx2)
|
||||
else()
|
||||
add_executable(bnProc_gen_avx2
|
||||
bnProc_gen_BG1_avx2.c
|
||||
bnProc_gen_BG2_avx2.c
|
||||
bnProcPc_gen_BG1_avx2.c
|
||||
bnProcPc_gen_BG2_avx2.c
|
||||
main.c)
|
||||
add_executable(bnProc_gen_128
|
||||
bnProc_gen_BG1_128.c
|
||||
bnProc_gen_BG2_128.c
|
||||
bnProcPc_gen_BG1_128.c
|
||||
bnProcPc_gen_BG2_128.c
|
||||
main128.c)
|
||||
|
||||
target_compile_options(bnProc_gen_avx2 PRIVATE -W -Wall )
|
||||
|
||||
target_compile_options(bnProc_gen_128 PRIVATE -W -Wall )
|
||||
export(TARGETS bnProc_gen_avx2 FILE
|
||||
"${CMAKE_BINARY_DIR}/bnProc_gen_avx2Config.cmake")
|
||||
export(TARGETS bnProc_gen_128 FILE
|
||||
"${CMAKE_BINARY_DIR}/bnProc_gen_128Config.cmake")
|
||||
endif ()
|
||||
|
||||
target_compile_options(bnProc_gen_128 PRIVATE -W -Wall )
|
||||
#set(bnProc_headers
|
||||
# bnProc/nrLDPC_bnProc_BG1_R13_AVX2.h
|
||||
# bnProc/nrLDPC_bnProc_BG1_R23_AVX2.h
|
||||
# bnProc/nrLDPC_bnProc_BG1_R89_AVX2.h
|
||||
# bnProc/rLDPC_bnProc_BG2_R13_AVX2.h
|
||||
# bnProc/rLDPC_bnProc_BG2_R15_AVX2.h
|
||||
# bnProc/rLDPC_bnProc_BG2_R23_AVX2.h)
|
||||
#
|
||||
#set(bnProcPc_headers
|
||||
# bnProcPc/rLDPC_bnProcPc_BG1_R13_AVX2.h
|
||||
# bnProcPc/rLDPC_bnProcPc_BG1_R23_AVX2.h
|
||||
# bnProcPc/rLDPC_bnProcPc_BG1_R89_AVX2.h
|
||||
# bnProcPc/rLDPC_bnProcPc_BG2_R13_AVX2.h
|
||||
# bnProcPc/rLDPC_bnProcPc_BG2_R15_AVX2.h
|
||||
# bnProcPc/rLDPC_bnProcPc_BG2_R23_AVX2.h)
|
||||
set(bnProc_headers
|
||||
bnProc/nrLDPC_bnProc_BG1_R13_AVX2.h
|
||||
bnProc/nrLDPC_bnProc_BG1_R23_AVX2.h
|
||||
bnProc/nrLDPC_bnProc_BG1_R89_AVX2.h
|
||||
bnProc/nrLDPC_bnProc_BG2_R13_AVX2.h
|
||||
bnProc/nrLDPC_bnProc_BG2_R15_AVX2.h
|
||||
bnProc/nrLDPC_bnProc_BG2_R23_AVX2.h)
|
||||
|
||||
add_custom_command(TARGET bnProc_gen_avx2 POST_BUILD
|
||||
#OUTPUT ${bnProc_headers} ${bnProcPc_headers}
|
||||
set(bnProcPc_headers
|
||||
bnProcPc/nrLDPC_bnProcPc_BG1_R13_AVX2.h
|
||||
bnProcPc/nrLDPC_bnProcPc_BG1_R23_AVX2.h
|
||||
bnProcPc/nrLDPC_bnProcPc_BG1_R89_AVX2.h
|
||||
bnProcPc/nrLDPC_bnProcPc_BG2_R13_AVX2.h
|
||||
bnProcPc/nrLDPC_bnProcPc_BG2_R15_AVX2.h
|
||||
bnProcPc/nrLDPC_bnProcPc_BG2_R23_AVX2.h)
|
||||
|
||||
set(bnProc128_headers
|
||||
bnProc/nrLDPC_bnProc_BG1_R13_128.h
|
||||
bnProc/nrLDPC_bnProc_BG1_R23_128.h
|
||||
bnProc/nrLDPC_bnProc_BG1_R89_128.h
|
||||
bnProc/nrLDPC_bnProc_BG2_R13_128.h
|
||||
bnProc/nrLDPC_bnProc_BG2_R15_128.h
|
||||
bnProc/nrLDPC_bnProc_BG2_R23_128.h)
|
||||
|
||||
set(bnProcPc128_headers
|
||||
bnProcPc/nrLDPC_bnProcPc_BG1_R13_128.h
|
||||
bnProcPc/nrLDPC_bnProcPc_BG1_R23_128.h
|
||||
bnProcPc/nrLDPC_bnProcPc_BG1_R89_128.h
|
||||
bnProcPc/nrLDPC_bnProcPc_BG2_R13_128.h
|
||||
bnProcPc/nrLDPC_bnProcPc_BG2_R15_128.h
|
||||
bnProcPc/nrLDPC_bnProcPc_BG2_R23_128.h)
|
||||
|
||||
|
||||
add_custom_command(
|
||||
# TARGET bnProc_gen_avx2 POST_BUILD
|
||||
OUTPUT ${bnProc_headers} ${bnProcPc_headers}
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory bnProc
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory bnProcPc
|
||||
COMMAND bnProc_gen_avx2 .
|
||||
DEPENDS bnProc_gen_avx2
|
||||
COMMENT "Generating LDPC bnProc header files for AVX2"
|
||||
)
|
||||
add_custom_command(TARGET bnProc_gen_128 POST_BUILD
|
||||
#OUTPUT ${bnProc_headers} ${bnProcPc_headers}
|
||||
add_custom_target(bnProc_gen_avx2_files DEPENDS ${bnProc_headers} ${bnProcPc_headers})
|
||||
|
||||
add_custom_command(
|
||||
# TARGET bnProc_gen_128 POST_BUILD
|
||||
OUTPUT ${bnProc128_headers} ${bnProcPc128_headers}
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory bnProc128
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory bnProcPc128
|
||||
COMMAND bnProc_gen_128 .
|
||||
DEPENDS bnProc_gen_128
|
||||
COMMENT "Generating LDPC bnProc header files for 128-bit SIMD"
|
||||
)
|
||||
add_custom_target(bnProc_gen_128_files DEPENDS ${bnProc128_headers} ${bnProcPc128_headers})
|
||||
|
||||
add_library(bnProc_gen_avx2_HEADERS INTERFACE)
|
||||
target_include_directories(bnProc_gen_avx2_HEADERS INTERFACE ${CMAKE_CURRENT_BINARY_DIR})
|
||||
add_dependencies(bnProc_gen_avx2_HEADERS bnProc_gen_avx2)
|
||||
add_dependencies(bnProc_gen_avx2_HEADERS bnProc_gen_avx2_files)
|
||||
|
||||
add_library(bnProc_gen_128_HEADERS INTERFACE)
|
||||
target_include_directories(bnProc_gen_128_HEADERS INTERFACE ${CMAKE_CURRENT_BINARY_DIR})
|
||||
add_dependencies(bnProc_gen_128_HEADERS bnProc_gen_128)
|
||||
add_dependencies(bnProc_gen_128_HEADERS bnProc_gen_128_files)
|
||||
|
||||
|
||||
+34
-25
@@ -1,36 +1,45 @@
|
||||
add_executable(bnProc_gen_avx512
|
||||
bnProc_gen_BG1_avx512.c
|
||||
bnProc_gen_BG2_avx512.c
|
||||
bnProcPc_gen_BG1_avx512.c
|
||||
bnProcPc_gen_BG2_avx512.c
|
||||
main.c)
|
||||
target_compile_options(bnProc_gen_avx512 PRIVATE -W -Wall )
|
||||
if (CROSS_COMPILE)
|
||||
find_package(bnProc_gen_avx512)
|
||||
else()
|
||||
add_executable(bnProc_gen_avx512
|
||||
bnProc_gen_BG1_avx512.c
|
||||
bnProc_gen_BG2_avx512.c
|
||||
bnProcPc_gen_BG1_avx512.c
|
||||
bnProcPc_gen_BG2_avx512.c
|
||||
main.c)
|
||||
target_compile_options(bnProc_gen_avx512 PRIVATE -W -Wall )
|
||||
export(TARGETS bnProc_gen_avx512 FILE
|
||||
"${CMAKE_BINARY_DIR}/bnProc_gen_avx512Config.cmake")
|
||||
endif ()
|
||||
|
||||
#set(bnProc_avx512_headers
|
||||
# bnProc_avx512/rLDPC_bnProc_BG1_R13_AVX512.h
|
||||
# bnProc_avx512/rLDPC_bnProc_BG1_R23_AVX512.h
|
||||
# bnProc_avx512/rLDPC_bnProc_BG1_R89_AVX512.h
|
||||
# bnProc_avx512/rLDPC_bnProc_BG2_R13_AVX512.h
|
||||
# bnProc_avx512/rLDPC_bnProc_BG2_R15_AVX512.h
|
||||
# bnProc_avx512/rLDPC_bnProc_BG2_R23_AVX512.h)
|
||||
#
|
||||
#set(bnProcPc_avx512_headers
|
||||
# bnProcPc_avx512/rLDPC_bnProcPc_BG1_R13_AVX512.h
|
||||
# bnProcPc_avx512/rLDPC_bnProcPc_BG1_R23_AVX512.h
|
||||
# bnProcPc_avx512/rLDPC_bnProcPc_BG1_R89_AVX512.h
|
||||
# bnProcPc_avx512/rLDPC_bnProcPc_BG2_R13_AVX512.h
|
||||
# bnProcPc_avx512/rLDPC_bnProcPc_BG2_R15_AVX512.h
|
||||
# bnProcPc_avx512/rLDPC_bnProcPc_BG2_R23_AVX512.h)
|
||||
set(bnProc_avx512_headers
|
||||
bnProc_avx512/nrLDPC_bnProc_BG1_R13_AVX512.h
|
||||
bnProc_avx512/nrLDPC_bnProc_BG1_R23_AVX512.h
|
||||
bnProc_avx512/nrLDPC_bnProc_BG1_R89_AVX512.h
|
||||
bnProc_avx512/nrLDPC_bnProc_BG2_R13_AVX512.h
|
||||
bnProc_avx512/nrLDPC_bnProc_BG2_R15_AVX512.h
|
||||
bnProc_avx512/nrLDPC_bnProc_BG2_R23_AVX512.h)
|
||||
|
||||
add_custom_command(TARGET bnProc_gen_avx512 POST_BUILD
|
||||
#OUTPUT ${bnProc_avx512_headers} ${bnProcPc_avx512_headers}
|
||||
set(bnProcPc_avx512_headers
|
||||
bnProcPc_avx512/nrLDPC_bnProcPc_BG1_R13_AVX512.h
|
||||
bnProcPc_avx512/nrLDPC_bnProcPc_BG1_R23_AVX512.h
|
||||
bnProcPc_avx512/nrLDPC_bnProcPc_BG1_R89_AVX512.h
|
||||
bnProcPc_avx512/nrLDPC_bnProcPc_BG2_R13_AVX512.h
|
||||
bnProcPc_avx512/nrLDPC_bnProcPc_BG2_R15_AVX512.h
|
||||
bnProcPc_avx512/nrLDPC_bnProcPc_BG2_R23_AVX512.h)
|
||||
|
||||
add_custom_command(
|
||||
# TARGET bnProc_gen_avx512 POST_BUILD
|
||||
OUTPUT ${bnProc_avx512_headers} ${bnProcPc_avx512_headers}
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory bnProc_avx512
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory bnProcPc_avx512
|
||||
COMMAND bnProc_gen_avx512 .
|
||||
DEPENDS bnProc_gen_avx512
|
||||
COMMENT "Generating LDPC bnProc header files for AVX512"
|
||||
)
|
||||
add_custom_target(bnProc_gen_avx512_files DEPENDS ${bnProc_avx512_headers} ${bnProcPc_avx512_headers})
|
||||
|
||||
add_library(bnProc_gen_avx512_HEADERS INTERFACE)
|
||||
target_include_directories(bnProc_gen_avx512_HEADERS INTERFACE ${CMAKE_CURRENT_BINARY_DIR})
|
||||
add_dependencies(bnProc_gen_avx512_HEADERS bnProc_gen_avx512)
|
||||
add_dependencies(bnProc_gen_avx512_HEADERS bnProc_gen_avx512_files)
|
||||
|
||||
|
||||
@@ -1,41 +1,64 @@
|
||||
add_executable(cnProc_gen_avx2
|
||||
cnProc_gen_BG1_avx2.c
|
||||
cnProc_gen_BG2_avx2.c
|
||||
main.c)
|
||||
add_executable(cnProc_gen_128
|
||||
cnProc_gen_BG1_128.c
|
||||
cnProc_gen_BG2_128.c
|
||||
main128.c)
|
||||
target_compile_options(cnProc_gen_avx2 PRIVATE -W -Wall )
|
||||
target_compile_options(cnProc_gen_128 PRIVATE -W -Wall )
|
||||
if (CROSS_COMPILE)
|
||||
find_package(cnProc_gen_128)
|
||||
find_package(cnProc_gen_avx2)
|
||||
else()
|
||||
add_executable(cnProc_gen_avx2
|
||||
cnProc_gen_BG1_avx2.c
|
||||
cnProc_gen_BG2_avx2.c
|
||||
main.c)
|
||||
add_executable(cnProc_gen_128
|
||||
cnProc_gen_BG1_128.c
|
||||
cnProc_gen_BG2_128.c
|
||||
main128.c)
|
||||
target_compile_options(cnProc_gen_avx2 PRIVATE -W -Wall )
|
||||
target_compile_options(cnProc_gen_128 PRIVATE -W -Wall )
|
||||
export(TARGETS cnProc_gen_avx2 FILE
|
||||
"${CMAKE_BINARY_DIR}/cnProc_gen_avx2Config.cmake")
|
||||
export(TARGETS cnProc_gen_128 FILE
|
||||
"${CMAKE_BINARY_DIR}/cnProc_gen_128Config.cmake")
|
||||
endif()
|
||||
|
||||
#set(cnProc_headers
|
||||
# cnProc/rLDPC_cnProc_BG1_R13_AVX2.h
|
||||
# cnProc/rLDPC_cnProc_BG1_R23_AVX2.h
|
||||
# cnProc/rLDPC_cnProc_BG1_R89_AVX2.h
|
||||
# cnProc/rLDPC_cnProc_BG2_R13_AVX2.h
|
||||
# cnProc/rLDPC_cnProc_BG2_R15_AVX2.h
|
||||
# cnProc/rLDPC_cnProc_BG2_R23_AVX2.h)
|
||||
set(cnProc_headers
|
||||
cnProc/nrLDPC_cnProc_BG1_R13_AVX2.h
|
||||
cnProc/nrLDPC_cnProc_BG1_R23_AVX2.h
|
||||
cnProc/nrLDPC_cnProc_BG1_R89_AVX2.h
|
||||
cnProc/nrLDPC_cnProc_BG2_R13_AVX2.h
|
||||
cnProc/nrLDPC_cnProc_BG2_R15_AVX2.h
|
||||
cnProc/nrLDPC_cnProc_BG2_R23_AVX2.h)
|
||||
|
||||
add_custom_command(TARGET cnProc_gen_avx2 POST_BUILD
|
||||
#OUTPUT ${cnProc_headers}
|
||||
set(cnProc128_headers
|
||||
cnProc/nrLDPC_cnProc_BG1_R13_128.h
|
||||
cnProc/nrLDPC_cnProc_BG1_R23_128.h
|
||||
cnProc/nrLDPC_cnProc_BG1_R89_128.h
|
||||
cnProc/nrLDPC_cnProc_BG2_R13_128.h
|
||||
cnProc/nrLDPC_cnProc_BG2_R15_128.h
|
||||
cnProc/nrLDPC_cnProc_BG2_R23_128.h)
|
||||
|
||||
add_custom_command(
|
||||
# TARGET cnProc_gen_avx2 POST_BUILD
|
||||
OUTPUT ${cnProc_headers}
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory cnProc
|
||||
COMMAND cnProc_gen_avx2 .
|
||||
DEPENDS cnProc_gen_avx2
|
||||
COMMENT "Generating LDPC cnProc header files for AVX2"
|
||||
)
|
||||
add_custom_target(cnProc_gen_avx2_files DEPENDS ${cnProc_headers})
|
||||
|
||||
add_custom_command(TARGET cnProc_gen_128 POST_BUILD
|
||||
#OUTPUT ${cnProc_headers}
|
||||
add_custom_command(
|
||||
# TARGET cnProc_gen_128 POST_BUILD
|
||||
OUTPUT ${cnProc128_headers}
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory cnProc128
|
||||
COMMAND cnProc_gen_128 .
|
||||
DEPENDS cnProc_gen_128
|
||||
COMMENT "Generating LDPC cnProc header files for 128-bit SIMD"
|
||||
)
|
||||
add_custom_target(cnProc_gen_128_files DEPENDS ${cnProc128_headers})
|
||||
|
||||
add_library(cnProc_gen_avx2_HEADERS INTERFACE)
|
||||
target_include_directories(cnProc_gen_avx2_HEADERS INTERFACE ${CMAKE_CURRENT_BINARY_DIR})
|
||||
add_dependencies(cnProc_gen_avx2_HEADERS cnProc_gen_avx2)
|
||||
add_dependencies(cnProc_gen_avx2_HEADERS cnProc_gen_avx2_files)
|
||||
|
||||
add_library(cnProc_gen_128_HEADERS INTERFACE)
|
||||
target_include_directories(cnProc_gen_128_HEADERS INTERFACE ${CMAKE_CURRENT_BINARY_DIR})
|
||||
add_dependencies(cnProc_gen_128_HEADERS cnProc_gen_128)
|
||||
add_dependencies(cnProc_gen_128_HEADERS cnProc_gen_128_files)
|
||||
|
||||
|
||||
+24
-16
@@ -1,25 +1,33 @@
|
||||
add_executable(cnProc_gen_avx512
|
||||
cnProc_gen_BG1_avx512.c
|
||||
cnProc_gen_BG2_avx512.c
|
||||
main.c)
|
||||
target_compile_options(cnProc_gen_avx512 PRIVATE -W -Wall )
|
||||
if (CROSS_COMPILE)
|
||||
find_package(cnProc_gen_avx512)
|
||||
else()
|
||||
add_executable(cnProc_gen_avx512
|
||||
cnProc_gen_BG1_avx512.c
|
||||
cnProc_gen_BG2_avx512.c
|
||||
main.c)
|
||||
target_compile_options(cnProc_gen_avx512 PRIVATE -W -Wall )
|
||||
export(TARGETS cnProc_gen_avx512 FILE
|
||||
"${CMAKE_BINARY_DIR}/cnProc_gen_avx512Config.cmake")
|
||||
endif()
|
||||
|
||||
#set(cnProc_avx512_headers
|
||||
# cnProc_avx512/nrLDPC_cnProc_BG1_R13_AVX512.h
|
||||
# cnProc_avx512/nrLDPC_cnProc_BG1_R23_AVX512.h
|
||||
# cnProc_avx512/nrLDPC_cnProc_BG1_R89_AVX512.h
|
||||
# cnProc_avx512/nrLDPC_cnProc_BG2_R13_AVX512.h
|
||||
# cnProc_avx512/nrLDPC_cnProc_BG2_R15_AVX512.h
|
||||
# cnProc_avx512/nrLDPC_cnProc_BG2_R23_AVX512.h)
|
||||
set(cnProc_avx512_headers
|
||||
cnProc_avx512/nrLDPC_cnProc_BG1_R13_AVX512.h
|
||||
cnProc_avx512/nrLDPC_cnProc_BG1_R23_AVX512.h
|
||||
cnProc_avx512/nrLDPC_cnProc_BG1_R89_AVX512.h
|
||||
cnProc_avx512/nrLDPC_cnProc_BG2_R13_AVX512.h
|
||||
cnProc_avx512/nrLDPC_cnProc_BG2_R15_AVX512.h
|
||||
cnProc_avx512/nrLDPC_cnProc_BG2_R23_AVX512.h)
|
||||
|
||||
add_custom_command(TARGET cnProc_gen_avx512 POST_BUILD
|
||||
#OUTPUT ${cnProc_avx512_headers}
|
||||
add_custom_command(
|
||||
# TARGET cnProc_gen_avx512 POST_BUILD
|
||||
OUTPUT ${cnProc_avx512_headers}
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory cnProc_avx512
|
||||
COMMAND cnProc_gen_avx512 .
|
||||
DEPENDS cnProc_gen_avx512
|
||||
COMMENT "Generating LDPC cnProc header files for AVX512"
|
||||
)
|
||||
|
||||
add_custom_target(cnProc_gen_avx512_files DEPENDS ${cnProc_avx512_headers})
|
||||
add_library(cnProc_gen_avx512_HEADERS INTERFACE)
|
||||
target_include_directories(cnProc_gen_avx512_HEADERS INTERFACE ${CMAKE_CURRENT_BINARY_DIR})
|
||||
add_dependencies(cnProc_gen_avx512_HEADERS cnProc_gen_avx512)
|
||||
add_dependencies(cnProc_gen_avx512_HEADERS cnProc_gen_avx512_files)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user