Skip to content

Commit 0a96389

Browse files
authored
Merge pull request #292 from apple/eng/genccode-data-build
ICU: build data library using genccode
2 parents 4dece97 + 2cb89a9 commit 0a96389

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

shared/ICU/CMakeLists.txt

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -641,13 +641,18 @@ if(BUILD_TOOLS)
641641
target_link_libraries(pkgdata PRIVATE
642642
icuuc icutu)
643643

644+
add_executable(genccode
645+
source/tools/genccode/genccode.c)
646+
target_link_libraries(genccode PRIVATE
647+
icuuc icutu)
648+
644649
set(ICU_TOOLS_DIR ${CMAKE_CURRENT_BINARY_DIR})
645650
elseif(ICU_TOOLS_DIR)
646651
if(CMAKE_HOST_SYSTEM_NAME MATCHES Windows)
647652
set(CMAKE_HOST_EXECUTABLE_SUFFIX .exe)
648653
endif()
649654

650-
foreach(tool gencnval;gencfu;makeconv;genbrk;gensprep;gendict;icupkg;genrb;pkgdata)
655+
foreach(tool gencnval;gencfu;makeconv;genbrk;gensprep;gendict;icupkg;genrb;pkgdata;genccode)
651656
add_executable(${tool} IMPORTED)
652657
set_target_properties(${tool} PROPERTIES
653658
IMPORTED_LOCATION ${ICU_TOOLS_DIR}/${tool}${CMAKE_HOST_EXECUTABLE_SUFFIX})
@@ -736,13 +741,17 @@ else()
736741

737742
configure_file(icupkg.inc.cmake ${CMAKE_BINARY_DIR}/icupkg.inc)
738743

739-
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/data/tmp/${U_ICUDATA_PKGN}_dat.S
740-
COMMAND $<TARGET_FILE:pkgdata> -f -e ${U_ICUDATA_NAME} -v -m $<IF:$<BOOL:${BUILD_SHARED_LIBS}>,dll,static> -c -p ${U_ICUDATA_PKGN} -T ${CMAKE_CURRENT_BINARY_DIR}/data/tmp -L ${U_ICUDATA_NAME} -d ${CMAKE_CURRENT_BINARY_DIR}/data/${U_ICUDATA_PKGN} -s ${CMAKE_CURRENT_BINARY_DIR}/data/${U_ICUDATA_PKGN} ${CMAKE_CURRENT_BINARY_DIR}/data/tmp/icudata.lst -O ${CMAKE_BINARY_DIR}/icupkg.inc
744+
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/data/${U_ICUDATA_PKGN}/${U_ICUDATA_PKGN}.dat
745+
COMMAND $<TARGET_FILE:pkgdata> -f -e ${U_ICUDATA_NAME} -v -m archive -c -p ${U_ICUDATA_PKGN} -T ${CMAKE_CURRENT_BINARY_DIR}/data/tmp -L ${U_ICUDATA_NAME} -d ${CMAKE_CURRENT_BINARY_DIR}/data/${U_ICUDATA_PKGN} -s ${CMAKE_CURRENT_BINARY_DIR}/data/${U_ICUDATA_PKGN} ${CMAKE_CURRENT_BINARY_DIR}/data/tmp/icudata.lst -O ${CMAKE_BINARY_DIR}/icupkg.inc
741746
DEPENDS pkgdata ${CMAKE_CURRENT_BINARY_DIR}/data/tmp/icudata.lst
742747
BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/data/tmp/${U_ICUDATA_PKGN}.dat)
743748

749+
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/data/${U_ICUDATA_PKGN}/${U_ICUDATA_PKGN}_dat.S
750+
COMMAND $<TARGET_FILE:genccode> -e ${U_ICUDATA_NAME} -a gcc -d ${CMAKE_CURRENT_BINARY_DIR}/data/${U_ICUDATA_PKGN} ${CMAKE_CURRENT_BINARY_DIR}/data/${U_ICUDATA_PKGN}/${U_ICUDATA_PKGN}.dat
751+
DEPENDS genccode ${CMAKE_CURRENT_BINARY_DIR}/data/${U_ICUDATA_PKGN}/${U_ICUDATA_PKGN}.dat)
752+
744753
add_library(${U_ICUDATA_NAME}
745-
${CMAKE_CURRENT_BINARY_DIR}/data/tmp/${U_ICUDATA_PKGN}_dat.S)
754+
${CMAKE_CURRENT_BINARY_DIR}/data/${U_ICUDATA_PKGN}/${U_ICUDATA_PKGN}_dat.S)
746755
set_target_properties(${U_ICUDATA_NAME} PROPERTIES
747756
LINKER_LANGUAGE C
748757
LINK_OPTIONS "-nodefaultlibs;-nostdlib;-Bsymbolic"

0 commit comments

Comments
 (0)