Skip to content

Commit fa16998

Browse files
committed
ICU: build data library using genccode
This lets us build an android data library using windows ICU tools
1 parent 45a5c45 commit fa16998

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
@@ -649,9 +649,14 @@ if(BUILD_TOOLS)
649649
target_link_libraries(pkgdata PRIVATE
650650
icuuc icutu)
651651

652+
add_executable(genccode
653+
source/tools/genccode/genccode.c)
654+
target_link_libraries(genccode PRIVATE
655+
icuuc icutu)
656+
652657
set(ICU_TOOLS_DIR ${CMAKE_CURRENT_BINARY_DIR})
653658
elseif(ICU_TOOLS_DIR)
654-
foreach(tool gencnval;gencfu;makeconv;genbrk;gensprep;gendict;icupkg;genrb;pkgdata)
659+
foreach(tool gencnval;gencfu;makeconv;genbrk;gensprep;gendict;icupkg;genrb;pkgdata;genccode)
655660
add_executable(${tool} IMPORTED)
656661
set_target_properties(${tool} PROPERTIES
657662
IMPORTED_LOCATION ${ICU_TOOLS_DIR}/${tool}${CMAKE_EXECUTABLE_SUFFIX})
@@ -740,13 +745,17 @@ else()
740745

741746
configure_file(icupkg.inc.cmake ${CMAKE_BINARY_DIR}/icupkg.inc)
742747

743-
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/data/tmp/${U_ICUDATA_PKGN}_dat.S
744-
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
748+
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/data/${U_ICUDATA_PKGN}/${U_ICUDATA_PKGN}.dat
749+
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
745750
DEPENDS pkgdata ${CMAKE_CURRENT_BINARY_DIR}/data/tmp/icudata.lst
746751
BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/data/tmp/${U_ICUDATA_PKGN}.dat)
747752

753+
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/data/${U_ICUDATA_PKGN}/${U_ICUDATA_PKGN}_dat.S
754+
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
755+
DEPENDS genccode ${CMAKE_CURRENT_BINARY_DIR}/data/${U_ICUDATA_PKGN}/${U_ICUDATA_PKGN}.dat)
756+
748757
add_library(${U_ICUDATA_NAME}
749-
${CMAKE_CURRENT_BINARY_DIR}/data/tmp/${U_ICUDATA_PKGN}_dat.S)
758+
${CMAKE_CURRENT_BINARY_DIR}/data/${U_ICUDATA_PKGN}/${U_ICUDATA_PKGN}_dat.S)
750759
set_target_properties(${U_ICUDATA_NAME} PROPERTIES
751760
LINKER_LANGUAGE C
752761
LINK_OPTIONS "-nodefaultlibs;-nostdlib;-Bsymbolic"

0 commit comments

Comments
 (0)