From 1768d41f31fc83d56bf68aa3e0af15cf5b7e6777 Mon Sep 17 00:00:00 2001 From: Pooya Moradi Date: Fri, 30 Sep 2022 07:48:24 +0800 Subject: [PATCH] new package: dcmtk --- .../dcmtk/0001-remove-android-tests.patch | 122 ++++++++++++++++++ packages/dcmtk/0002-fix-for-pwd.h.patch | 13 ++ packages/dcmtk/0003-disable-setuid.patch | 38 ++++++ packages/dcmtk/arith.h/aarch64.h | 58 +++++++++ packages/dcmtk/arith.h/arm.h | 58 +++++++++ packages/dcmtk/arith.h/i686.h | 58 +++++++++ packages/dcmtk/arith.h/x86_64.h | 58 +++++++++ packages/dcmtk/build.sh | 31 +++++ 8 files changed, 436 insertions(+) create mode 100644 packages/dcmtk/0001-remove-android-tests.patch create mode 100644 packages/dcmtk/0002-fix-for-pwd.h.patch create mode 100644 packages/dcmtk/0003-disable-setuid.patch create mode 100644 packages/dcmtk/arith.h/aarch64.h create mode 100644 packages/dcmtk/arith.h/arm.h create mode 100644 packages/dcmtk/arith.h/i686.h create mode 100644 packages/dcmtk/arith.h/x86_64.h create mode 100644 packages/dcmtk/build.sh diff --git a/packages/dcmtk/0001-remove-android-tests.patch b/packages/dcmtk/0001-remove-android-tests.patch new file mode 100644 index 0000000000..772eb623cf --- /dev/null +++ b/packages/dcmtk/0001-remove-android-tests.patch @@ -0,0 +1,122 @@ +diff --git a/CMake/GenerateDCMTKConfigure.cmake b/CMake/GenerateDCMTKConfigure.cmake +index 11e49b269..23bc19f25 100644 +--- a/CMake/GenerateDCMTKConfigure.cmake ++++ b/CMake/GenerateDCMTKConfigure.cmake +@@ -1425,9 +1425,6 @@ function(INSPECT_FUNDAMENTAL_ARITHMETIC_TYPES) + if(NOT RESULT) + message(STATUS "${OUTPUT}") + if(CMAKE_CROSSCOMPILING) +- if(ANDROID) +- DCMTK_ANDROID_PULL(DCMTK_ANDROID_EMULATOR_INSTANCE "${ARITH_H_FILE}" DESTINATION "${ARITH_H_DESTINATION}") +- endif() + endif() + else() + message(FATAL_ERROR "${OUTPUT}") +diff --git a/CMake/dcmtkMacros.cmake b/CMake/dcmtkMacros.cmake +index 6cbce0a91..5d39f22cb 100644 +--- a/CMake/dcmtkMacros.cmake ++++ b/CMake/dcmtkMacros.cmake +@@ -11,8 +11,6 @@ function(DCMTK_ADD_TESTS MODULE) + if(WIN32) + WINE_COMMAND(TEST_COMMAND "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${MODULE}_tests${CMAKE_EXECUTABLE_SUFFIX}") + string(REPLACE "\\" "\\\\" TEST_COMMAND "${TEST_COMMAND}") +- elseif(ANDROID) +- set(TEST_COMMAND "${ANDROID_TEMPORARY_FILES_LOCATION}/${MODULE}_tests") + else() + # not reachable, handled by not defining DCMTK_RUN_CTEST_SCRIPT + endif() +diff --git a/CMake/dcmtkPrepare.cmake b/CMake/dcmtkPrepare.cmake +index 2f83c5acb..ddbc59a0b 100644 +--- a/CMake/dcmtkPrepare.cmake ++++ b/CMake/dcmtkPrepare.cmake +@@ -259,10 +259,6 @@ if(CMAKE_CROSSCOMPILING) + if(WIN32) + include("${DCMTK_CMAKE_INCLUDE}CMake/dcmtkUseWine.cmake") + DCMTK_SETUP_WINE() +- elseif(ANDROID) +- include("${DCMTK_CMAKE_INCLUDE}CMake/dcmtkUseAndroidSDK.cmake") +- # Ensure the configuration variables for the Android device emulator exist in the cache. +- DCMTK_SETUP_ANDROID_EMULATOR() + endif() + endif() + +@@ -279,10 +275,6 @@ include("${DCMTK_CMAKE_INCLUDE}CMake/dcmtkMacros.cmake") + + if(CMAKE_CROSSCOMPILING) + unset(DCMTK_UNIT_TESTS_UNSUPPORTED_WARN_ONCE CACHE) +- if(ANDROID) +- unset(DCMTK_TRY_RUN_ANDROID_RUNTIME_INSTALLED CACHE) +- DCMTK_ANDROID_START_EMULATOR(DCMTK_ANDROID_EMULATOR_INSTANCE) +- endif() + endif() + + #----------------------------------------------------------------------------- +diff --git a/CMake/dcmtkTryRun.cmake b/CMake/dcmtkTryRun.cmake +index 86f7bd8b2..93d5f1426 100644 +--- a/CMake/dcmtkTryRun.cmake ++++ b/CMake/dcmtkTryRun.cmake +@@ -54,26 +54,6 @@ function(DCMTK_TRY_RUN_CROSS RUN_RESULT_VAR COMPILE_RESULT_VAR bindir srcfile) + if(WIN32) + WINE_COMMAND(CMD "${OUTPUT_EXECUTABLE}" ${DCMTK_TRY_RUN_ARGS}) + WINE_DETACHED("${RUN_RESULT_VAR}" "${DCMTK_TRY_RUN_RUN_OUTPUT_VARIABLE}" "${DCMTK_TRY_RUN_RUN_OUTPUT_VARIABLE}" "${WINE_WINE_PROGRAM}" ${CMD}) +- elseif(ANDROID) +- DCMTK_ANDROID_WAIT_FOR_EMULATOR(DCMTK_ANDROID_EMULATOR_INSTANCE) +- if(NOT DCMTK_TRY_RUN_ANDROID_RUNTIME_INSTALLED) +- DCMTK_ANDROID_FIND_RUNTIME_LIBRARIES(ANDROID_RUNTIME_LIBRARIES) +- set(ANDROID_RUNTIME_LIBRARIES ${ANDROID_RUNTIME_LIBRARIES} CACHE INTERNAL "") +- DCMTK_ANDROID_PUSH(DCMTK_ANDROID_EMULATOR_INSTANCE ${ANDROID_RUNTIME_LIBRARIES} DESTINATION "${ANDROID_TEMPORARY_FILES_LOCATION}") +- set(DCMTK_TRY_RUN_ANDROID_RUNTIME_INSTALLED TRUE CACHE INTERNAL "") +- endif() +- DCMTK_ANDROID_PUSH(DCMTK_ANDROID_EMULATOR_INSTANCE "${OUTPUT_EXECUTABLE}" DESTINATION "${ANDROID_TEMPORARY_FILES_LOCATION}/${OUTPUT_EXECUTABLE_NAME}") +- DCMTK_ANDROID_SHELL(DCMTK_ANDROID_EMULATOR_INSTANCE +- COMMAND chmod 755 "${ANDROID_TEMPORARY_FILES_LOCATION}/${OUTPUT_EXECUTABLE_NAME}" +- OUTPUT_QUIET +- ERROR_QUIET +- ) +- DCMTK_ANDROID_SHELL(DCMTK_ANDROID_EMULATOR_INSTANCE +- COMMAND "LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:${ANDROID_TEMPORARY_FILES_LOCATION}" "${ANDROID_TEMPORARY_FILES_LOCATION}/${OUTPUT_EXECUTABLE_NAME}" ${DCMTK_TRY_RUN_ARGS} +- RESULT_VARIABLE "${RUN_RESULT_VAR}" +- OUTPUT_VARIABLE "${DCMTK_TRY_RUN_RUN_OUTPUT_VARIABLE}" +- ERROR_VARIABLE "${DCMTK_TRY_RUN_RUN_OUTPUT_VARIABLE}" +- ) + else() + message(WARNING "Emulation for your target platform is not available, please fill in the required configure test results manually.") + try_run("${RUN_RESULT_VAR}" "${COMPILE_RESULT_VAR}" "${bindir}" "${srcfile}" ${ARGN}) +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 9f8d268f3..de245c852 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -58,8 +58,6 @@ INSPECT_FUNDAMENTAL_ARITHMETIC_TYPES() + if(CMAKE_CROSSCOMPILING) + if(WIN32) + set(DCMTK_RUN_CTEST_SCRIPT "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/dcmtkCTestRunWine.cmake" CACHE INTERNAL "path to the CMake script for launching a unit test as a detached Wine process in the prepared wineprefix") +- elseif(ANDROID) +- set(DCMTK_RUN_CTEST_SCRIPT "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/dcmtkCTestRunAndroid.cmake" CACHE INTERNAL "path to the CMake script for launching a unit test via the android emulator") + else() + message(WARNING "Emulation for your target platform is not available, CTest will not be able to execute the unit tests!") + endif() +@@ -121,24 +119,6 @@ if(CMAKE_CROSSCOMPILING) + configure_file("${DCMTK_SOURCE_DIR}/CMake/CTest/dcmtkCTestRunWine.cmake.in" + "${DCMTK_RUN_CTEST_SCRIPT}" ESCAPE_QUOTES @ONLY + ) +- elseif(ANDROID) +- DCMTK_ANDROID_STOP_EMULATOR(DCMTK_ANDROID_EMULATOR_INSTANCE) +- # Prepare setting environment variable DCMDICTPATH +- set(DICTIONARIES ${DCMTK_DICOM_DICTIONARIES}) +- list(GET DICTIONARIES 0 DCMDICTPATH) +- list(REMOVE_AT DICTIONARIES 0) +- get_filename_component(DCMDICTPATH "${DCMDICTPATH}" NAME) +- set(DCMDICTPATH "${ANDROID_TEMPORARY_FILES_LOCATION}/${DCMDICTPATH}") +- foreach(DICTIONARY ${DICTIONARIES}) +- get_filename_component(FILE "${DICTIONARY}" NAME) +- set(DCMDICTPATH "${DCMDICTPATH}:${ANDROID_TEMPORARY_FILES_LOCATION}/${FILE}") +- endforeach() +- configure_file("${DCMTK_SOURCE_DIR}/CMake/CTest/CTestCustomAndroid.cmake.in" +- "${DCMTK_BINARY_DIR}/CTestCustom.cmake" ESCAPE_QUOTES @ONLY +- ) +- configure_file("${DCMTK_SOURCE_DIR}/CMake/CTest/dcmtkCTestRunAndroid.cmake.in" +- "${DCMTK_RUN_CTEST_SCRIPT}" ESCAPE_QUOTES @ONLY +- ) + else() + # Nothing to do + endif() diff --git a/packages/dcmtk/0002-fix-for-pwd.h.patch b/packages/dcmtk/0002-fix-for-pwd.h.patch new file mode 100644 index 0000000000..d2dd073227 --- /dev/null +++ b/packages/dcmtk/0002-fix-for-pwd.h.patch @@ -0,0 +1,13 @@ +diff -uNr a/ofstd/include/dcmtk/ofstd/ofpwd.h b/ofstd/include/dcmtk/ofstd/ofpwd.h +--- a/ofstd/include/dcmtk/ofstd/ofpwd.h ++++ b/ofstd/include/dcmtk/ofstd/ofpwd.h +@@ -31,6 +31,9 @@ + #ifdef HAVE_PWD_H + #include + #endif ++#ifndef HAVE_PASSWD_GECOS ++#undef pw_gecos ++#endif + END_EXTERN_C + + #ifdef HAVE_WINDOWS_H diff --git a/packages/dcmtk/0003-disable-setuid.patch b/packages/dcmtk/0003-disable-setuid.patch new file mode 100644 index 0000000000..a66e62b615 --- /dev/null +++ b/packages/dcmtk/0003-disable-setuid.patch @@ -0,0 +1,38 @@ +diff -uNr a/dcmqrdb/apps/dcmqrscp.cc b/dcmqrdb/apps/dcmqrscp.cc +--- a/dcmqrdb/apps/dcmqrscp.cc ++++ b/dcmqrdb/apps/dcmqrscp.cc +@@ -854,6 +854,7 @@ + return 10; + } + ++#ifndef __ANDROID__ + #if defined(HAVE_SETUID) && defined(HAVE_GRP_H) && defined(HAVE_PWD_H) + OFStandard::OFGroup grp; + OFStandard::OFPasswd pwd; +@@ -887,6 +888,7 @@ + } + } + #endif // defined(HAVE_SETUID) && defined(HAVE_GRP_H) && defined(HAVE_PWD_H) ++#endif + + #ifdef WITH_SQL_DATABASE + // use SQL database +diff -uNr a/ofstd/libsrc/ofstd.cc b/ofstd/libsrc/ofstd.cc +--- a/ofstd/libsrc/ofstd.cc ++++ b/ofstd/libsrc/ofstd.cc +@@ -3108,6 +3108,7 @@ + + OFCondition OFStandard::dropPrivileges() + { ++#ifndef __ANDROID__ + #if defined(HAVE_SETUID) && defined(HAVE_GETUID) + if ((setuid(getuid()) != 0) && (errno != EPERM)) + { +@@ -3122,6 +3123,7 @@ + return EC_setuidFailed; + } + #endif ++#endif + return EC_Normal; + } + diff --git a/packages/dcmtk/arith.h/aarch64.h b/packages/dcmtk/arith.h/aarch64.h new file mode 100644 index 0000000000..cc9d3ce251 --- /dev/null +++ b/packages/dcmtk/arith.h/aarch64.h @@ -0,0 +1,58 @@ +#ifndef CONFIG_ARITH_H +#define CONFIG_ARITH_H + +#define DCMTK_SIGNED_CHAR_DIGITS10 2 +#define DCMTK_UNSIGNED_CHAR_DIGITS10 2 +#define DCMTK_SIGNED_SHORT_DIGITS10 4 +#define DCMTK_UNSIGNED_SHORT_DIGITS10 4 +#define DCMTK_SIGNED_INT_DIGITS10 9 +#define DCMTK_UNSIGNED_INT_DIGITS10 9 +#define DCMTK_SIGNED_LONG_DIGITS10 18 +#define DCMTK_UNSIGNED_LONG_DIGITS10 19 +#define DCMTK_FLOAT_MAX_DIGITS10 9 +#define DCMTK_DOUBLE_MAX_DIGITS10 17 +#define DCMTK_CHAR_TRAPS OFFalse +#define DCMTK_CHAR_MODULO OFTrue +#define DCMTK_SIGNED_CHAR_TRAPS OFFalse +#define DCMTK_SIGNED_CHAR_MODULO OFTrue +#define DCMTK_UNSIGNED_CHAR_TRAPS OFFalse +#define DCMTK_UNSIGNED_CHAR_MODULO OFTrue +#define DCMTK_SIGNED_SHORT_TRAPS OFFalse +#define DCMTK_SIGNED_SHORT_MODULO OFTrue +#define DCMTK_UNSIGNED_SHORT_TRAPS OFFalse +#define DCMTK_UNSIGNED_SHORT_MODULO OFTrue +#define DCMTK_SIGNED_INT_TRAPS OFFalse +#define DCMTK_SIGNED_INT_MODULO OFTrue +#define DCMTK_UNSIGNED_INT_TRAPS OFFalse +#define DCMTK_UNSIGNED_INT_MODULO OFTrue +#define DCMTK_SIGNED_LONG_TRAPS OFFalse +#define DCMTK_SIGNED_LONG_MODULO OFTrue +#define DCMTK_UNSIGNED_LONG_TRAPS OFFalse +#define DCMTK_UNSIGNED_LONG_MODULO OFTrue +#define DCMTK_FLOAT_TRAPS OFFalse +#define DCMTK_DOUBLE_TRAPS OFFalse +#define DCMTK_FLOAT_HAS_INFINITY OFTrue +#define DCMTK_FLOAT_INFINITY *OFreinterpret_cast( const float*, "\000\000\200\177" ) +#define DCMTK_DOUBLE_HAS_INFINITY OFTrue +#define DCMTK_DOUBLE_INFINITY *OFreinterpret_cast( const double*, "\000\000\000\000\000\000\360\177" ) +#define DCMTK_FLOAT_HAS_QUIET_NAN OFTrue +#define DCMTK_FLOAT_QUIET_NAN *OFreinterpret_cast( const float*, "\000\000\300\177" ) +#define DCMTK_DOUBLE_HAS_QUIET_NAN OFTrue +#define DCMTK_DOUBLE_QUIET_NAN *OFreinterpret_cast( const double*, "\000\000\000\000\000\000\370\177" ) +#define DCMTK_FLOAT_HAS_SIGNALING_NAN OFFalse +#define DCMTK_FLOAT_SIGNALING_NAN *OFreinterpret_cast( const float*, "\001\000\200\177" ) +#define DCMTK_DOUBLE_HAS_SIGNALING_NAN OFFalse +#define DCMTK_DOUBLE_SIGNALING_NAN *OFreinterpret_cast( const double*, "\001\000\000\000\000\000\360\177" ) +#define DCMTK_FLOAT_IS_IEC559 OFFalse +#define DCMTK_DOUBLE_IS_IEC559 OFFalse +#define DCMTK_FLOAT_HAS_DENORM OFdenorm_present +#define DCMTK_FLOAT_DENORM_MIN *OFreinterpret_cast( const float*, "\001\000\000\000" ) +#define DCMTK_DOUBLE_HAS_DENORM OFdenorm_present +#define DCMTK_DOUBLE_DENORM_MIN *OFreinterpret_cast( const double*, "\001\000\000\000\000\000\000\000" ) +#define DCMTK_FLOAT_TINYNESS_BEFORE OFTrue +#define DCMTK_DOUBLE_TINYNESS_BEFORE OFTrue +#define DCMTK_FLOAT_HAS_DENORM_LOSS OFTrue +#define DCMTK_DOUBLE_HAS_DENORM_LOSS OFTrue +#define DCMTK_ROUND_STYLE 1 + +#endif // CONFIG_ARITH_H diff --git a/packages/dcmtk/arith.h/arm.h b/packages/dcmtk/arith.h/arm.h new file mode 100644 index 0000000000..7ae7ff08e6 --- /dev/null +++ b/packages/dcmtk/arith.h/arm.h @@ -0,0 +1,58 @@ +#ifndef CONFIG_ARITH_H +#define CONFIG_ARITH_H + +#define DCMTK_SIGNED_CHAR_DIGITS10 2 +#define DCMTK_UNSIGNED_CHAR_DIGITS10 2 +#define DCMTK_SIGNED_SHORT_DIGITS10 4 +#define DCMTK_UNSIGNED_SHORT_DIGITS10 4 +#define DCMTK_SIGNED_INT_DIGITS10 9 +#define DCMTK_UNSIGNED_INT_DIGITS10 9 +#define DCMTK_SIGNED_LONG_DIGITS10 9 +#define DCMTK_UNSIGNED_LONG_DIGITS10 9 +#define DCMTK_FLOAT_MAX_DIGITS10 9 +#define DCMTK_DOUBLE_MAX_DIGITS10 17 +#define DCMTK_CHAR_TRAPS OFFalse +#define DCMTK_CHAR_MODULO OFTrue +#define DCMTK_SIGNED_CHAR_TRAPS OFFalse +#define DCMTK_SIGNED_CHAR_MODULO OFTrue +#define DCMTK_UNSIGNED_CHAR_TRAPS OFFalse +#define DCMTK_UNSIGNED_CHAR_MODULO OFTrue +#define DCMTK_SIGNED_SHORT_TRAPS OFFalse +#define DCMTK_SIGNED_SHORT_MODULO OFTrue +#define DCMTK_UNSIGNED_SHORT_TRAPS OFFalse +#define DCMTK_UNSIGNED_SHORT_MODULO OFTrue +#define DCMTK_SIGNED_INT_TRAPS OFFalse +#define DCMTK_SIGNED_INT_MODULO OFTrue +#define DCMTK_UNSIGNED_INT_TRAPS OFFalse +#define DCMTK_UNSIGNED_INT_MODULO OFTrue +#define DCMTK_SIGNED_LONG_TRAPS OFFalse +#define DCMTK_SIGNED_LONG_MODULO OFTrue +#define DCMTK_UNSIGNED_LONG_TRAPS OFFalse +#define DCMTK_UNSIGNED_LONG_MODULO OFTrue +#define DCMTK_FLOAT_TRAPS OFFalse +#define DCMTK_DOUBLE_TRAPS OFFalse +#define DCMTK_FLOAT_HAS_INFINITY OFTrue +#define DCMTK_FLOAT_INFINITY *OFreinterpret_cast( const float*, "\000\000\200\177" ) +#define DCMTK_DOUBLE_HAS_INFINITY OFTrue +#define DCMTK_DOUBLE_INFINITY *OFreinterpret_cast( const double*, "\000\000\000\000\000\000\360\177" ) +#define DCMTK_FLOAT_HAS_QUIET_NAN OFTrue +#define DCMTK_FLOAT_QUIET_NAN *OFreinterpret_cast( const float*, "\000\000\300\177" ) +#define DCMTK_DOUBLE_HAS_QUIET_NAN OFTrue +#define DCMTK_DOUBLE_QUIET_NAN *OFreinterpret_cast( const double*, "\000\000\000\000\000\000\370\177" ) +#define DCMTK_FLOAT_HAS_SIGNALING_NAN OFFalse +#define DCMTK_FLOAT_SIGNALING_NAN *OFreinterpret_cast( const float*, "\001\000\200\177" ) +#define DCMTK_DOUBLE_HAS_SIGNALING_NAN OFFalse +#define DCMTK_DOUBLE_SIGNALING_NAN *OFreinterpret_cast( const double*, "\001\000\000\000\000\000\360\177" ) +#define DCMTK_FLOAT_IS_IEC559 OFFalse +#define DCMTK_DOUBLE_IS_IEC559 OFFalse +#define DCMTK_FLOAT_HAS_DENORM OFdenorm_present +#define DCMTK_FLOAT_DENORM_MIN *OFreinterpret_cast( const float*, "\001\000\000\000" ) +#define DCMTK_DOUBLE_HAS_DENORM OFdenorm_present +#define DCMTK_DOUBLE_DENORM_MIN *OFreinterpret_cast( const double*, "\001\000\000\000\000\000\000\000" ) +#define DCMTK_FLOAT_TINYNESS_BEFORE OFTrue +#define DCMTK_DOUBLE_TINYNESS_BEFORE OFTrue +#define DCMTK_FLOAT_HAS_DENORM_LOSS OFTrue +#define DCMTK_DOUBLE_HAS_DENORM_LOSS OFTrue +#define DCMTK_ROUND_STYLE 1 + +#endif // CONFIG_ARITH_H diff --git a/packages/dcmtk/arith.h/i686.h b/packages/dcmtk/arith.h/i686.h new file mode 100644 index 0000000000..08d06832f6 --- /dev/null +++ b/packages/dcmtk/arith.h/i686.h @@ -0,0 +1,58 @@ +#ifndef CONFIG_ARITH_H +#define CONFIG_ARITH_H + +#define DCMTK_SIGNED_CHAR_DIGITS10 2 +#define DCMTK_UNSIGNED_CHAR_DIGITS10 2 +#define DCMTK_SIGNED_SHORT_DIGITS10 4 +#define DCMTK_UNSIGNED_SHORT_DIGITS10 4 +#define DCMTK_SIGNED_INT_DIGITS10 9 +#define DCMTK_UNSIGNED_INT_DIGITS10 9 +#define DCMTK_SIGNED_LONG_DIGITS10 9 +#define DCMTK_UNSIGNED_LONG_DIGITS10 9 +#define DCMTK_FLOAT_MAX_DIGITS10 9 +#define DCMTK_DOUBLE_MAX_DIGITS10 17 +#define DCMTK_CHAR_TRAPS OFTrue +#define DCMTK_CHAR_MODULO OFTrue +#define DCMTK_SIGNED_CHAR_TRAPS OFTrue +#define DCMTK_SIGNED_CHAR_MODULO OFTrue +#define DCMTK_UNSIGNED_CHAR_TRAPS OFTrue +#define DCMTK_UNSIGNED_CHAR_MODULO OFTrue +#define DCMTK_SIGNED_SHORT_TRAPS OFTrue +#define DCMTK_SIGNED_SHORT_MODULO OFTrue +#define DCMTK_UNSIGNED_SHORT_TRAPS OFTrue +#define DCMTK_UNSIGNED_SHORT_MODULO OFTrue +#define DCMTK_SIGNED_INT_TRAPS OFTrue +#define DCMTK_SIGNED_INT_MODULO OFTrue +#define DCMTK_UNSIGNED_INT_TRAPS OFTrue +#define DCMTK_UNSIGNED_INT_MODULO OFTrue +#define DCMTK_SIGNED_LONG_TRAPS OFTrue +#define DCMTK_SIGNED_LONG_MODULO OFTrue +#define DCMTK_UNSIGNED_LONG_TRAPS OFTrue +#define DCMTK_UNSIGNED_LONG_MODULO OFTrue +#define DCMTK_FLOAT_TRAPS OFFalse +#define DCMTK_DOUBLE_TRAPS OFFalse +#define DCMTK_FLOAT_HAS_INFINITY OFTrue +#define DCMTK_FLOAT_INFINITY *OFreinterpret_cast( const float*, "\000\000\200\177" ) +#define DCMTK_DOUBLE_HAS_INFINITY OFTrue +#define DCMTK_DOUBLE_INFINITY *OFreinterpret_cast( const double*, "\000\000\000\000\000\000\360\177" ) +#define DCMTK_FLOAT_HAS_QUIET_NAN OFTrue +#define DCMTK_FLOAT_QUIET_NAN *OFreinterpret_cast( const float*, "\000\000\300\177" ) +#define DCMTK_DOUBLE_HAS_QUIET_NAN OFTrue +#define DCMTK_DOUBLE_QUIET_NAN *OFreinterpret_cast( const double*, "\000\000\000\000\000\000\370\177" ) +#define DCMTK_FLOAT_HAS_SIGNALING_NAN OFTrue +#define DCMTK_FLOAT_SIGNALING_NAN *OFreinterpret_cast( const float*, "\001\000\200\177" ) +#define DCMTK_DOUBLE_HAS_SIGNALING_NAN OFTrue +#define DCMTK_DOUBLE_SIGNALING_NAN *OFreinterpret_cast( const double*, "\001\000\000\000\000\000\360\177" ) +#define DCMTK_FLOAT_IS_IEC559 OFTrue +#define DCMTK_DOUBLE_IS_IEC559 OFTrue +#define DCMTK_FLOAT_HAS_DENORM OFdenorm_present +#define DCMTK_FLOAT_DENORM_MIN *OFreinterpret_cast( const float*, "\001\000\000\000" ) +#define DCMTK_DOUBLE_HAS_DENORM OFdenorm_present +#define DCMTK_DOUBLE_DENORM_MIN *OFreinterpret_cast( const double*, "\001\000\000\000\000\000\000\000" ) +#define DCMTK_FLOAT_TINYNESS_BEFORE OFTrue +#define DCMTK_DOUBLE_TINYNESS_BEFORE OFTrue +#define DCMTK_FLOAT_HAS_DENORM_LOSS OFTrue +#define DCMTK_DOUBLE_HAS_DENORM_LOSS OFTrue +#define DCMTK_ROUND_STYLE 1 + +#endif // CONFIG_ARITH_H diff --git a/packages/dcmtk/arith.h/x86_64.h b/packages/dcmtk/arith.h/x86_64.h new file mode 100644 index 0000000000..9c50c2748c --- /dev/null +++ b/packages/dcmtk/arith.h/x86_64.h @@ -0,0 +1,58 @@ +#ifndef CONFIG_ARITH_H +#define CONFIG_ARITH_H + +#define DCMTK_SIGNED_CHAR_DIGITS10 2 +#define DCMTK_UNSIGNED_CHAR_DIGITS10 2 +#define DCMTK_SIGNED_SHORT_DIGITS10 4 +#define DCMTK_UNSIGNED_SHORT_DIGITS10 4 +#define DCMTK_SIGNED_INT_DIGITS10 9 +#define DCMTK_UNSIGNED_INT_DIGITS10 9 +#define DCMTK_SIGNED_LONG_DIGITS10 18 +#define DCMTK_UNSIGNED_LONG_DIGITS10 19 +#define DCMTK_FLOAT_MAX_DIGITS10 9 +#define DCMTK_DOUBLE_MAX_DIGITS10 17 +#define DCMTK_CHAR_TRAPS OFTrue +#define DCMTK_CHAR_MODULO OFTrue +#define DCMTK_SIGNED_CHAR_TRAPS OFTrue +#define DCMTK_SIGNED_CHAR_MODULO OFTrue +#define DCMTK_UNSIGNED_CHAR_TRAPS OFTrue +#define DCMTK_UNSIGNED_CHAR_MODULO OFTrue +#define DCMTK_SIGNED_SHORT_TRAPS OFTrue +#define DCMTK_SIGNED_SHORT_MODULO OFTrue +#define DCMTK_UNSIGNED_SHORT_TRAPS OFTrue +#define DCMTK_UNSIGNED_SHORT_MODULO OFTrue +#define DCMTK_SIGNED_INT_TRAPS OFTrue +#define DCMTK_SIGNED_INT_MODULO OFTrue +#define DCMTK_UNSIGNED_INT_TRAPS OFTrue +#define DCMTK_UNSIGNED_INT_MODULO OFTrue +#define DCMTK_SIGNED_LONG_TRAPS OFTrue +#define DCMTK_SIGNED_LONG_MODULO OFTrue +#define DCMTK_UNSIGNED_LONG_TRAPS OFTrue +#define DCMTK_UNSIGNED_LONG_MODULO OFTrue +#define DCMTK_FLOAT_TRAPS OFFalse +#define DCMTK_DOUBLE_TRAPS OFFalse +#define DCMTK_FLOAT_HAS_INFINITY OFTrue +#define DCMTK_FLOAT_INFINITY *OFreinterpret_cast( const float*, "\000\000\200\177" ) +#define DCMTK_DOUBLE_HAS_INFINITY OFTrue +#define DCMTK_DOUBLE_INFINITY *OFreinterpret_cast( const double*, "\000\000\000\000\000\000\360\177" ) +#define DCMTK_FLOAT_HAS_QUIET_NAN OFTrue +#define DCMTK_FLOAT_QUIET_NAN *OFreinterpret_cast( const float*, "\000\000\300\177" ) +#define DCMTK_DOUBLE_HAS_QUIET_NAN OFTrue +#define DCMTK_DOUBLE_QUIET_NAN *OFreinterpret_cast( const double*, "\000\000\000\000\000\000\370\177" ) +#define DCMTK_FLOAT_HAS_SIGNALING_NAN OFTrue +#define DCMTK_FLOAT_SIGNALING_NAN *OFreinterpret_cast( const float*, "\001\000\200\177" ) +#define DCMTK_DOUBLE_HAS_SIGNALING_NAN OFTrue +#define DCMTK_DOUBLE_SIGNALING_NAN *OFreinterpret_cast( const double*, "\001\000\000\000\000\000\360\177" ) +#define DCMTK_FLOAT_IS_IEC559 OFTrue +#define DCMTK_DOUBLE_IS_IEC559 OFTrue +#define DCMTK_FLOAT_HAS_DENORM OFdenorm_present +#define DCMTK_FLOAT_DENORM_MIN *OFreinterpret_cast( const float*, "\001\000\000\000" ) +#define DCMTK_DOUBLE_HAS_DENORM OFdenorm_present +#define DCMTK_DOUBLE_DENORM_MIN *OFreinterpret_cast( const double*, "\001\000\000\000\000\000\000\000" ) +#define DCMTK_FLOAT_TINYNESS_BEFORE OFTrue +#define DCMTK_DOUBLE_TINYNESS_BEFORE OFTrue +#define DCMTK_FLOAT_HAS_DENORM_LOSS OFTrue +#define DCMTK_DOUBLE_HAS_DENORM_LOSS OFTrue +#define DCMTK_ROUND_STYLE 1 + +#endif // CONFIG_ARITH_H diff --git a/packages/dcmtk/build.sh b/packages/dcmtk/build.sh new file mode 100644 index 0000000000..38ea16c96f --- /dev/null +++ b/packages/dcmtk/build.sh @@ -0,0 +1,31 @@ +TERMUX_PKG_HOMEPAGE="https://dicom.offis.de/dcmtk" +TERMUX_PKG_DESCRIPTION="A collection of libraries and applications implementing large parts the DICOM standard" +TERMUX_PKG_GROUPS="science" +TERMUX_PKG_LICENSE="BSD 3-Clause" +TERMUX_PKG_LICENSE_FILE="COPYRIGHT" +TERMUX_PKG_MAINTAINER="@termux" +TERMUX_PKG_VERSION="3.6.7" +TERMUX_PKG_SRCURL="https://github.com/DCMTK/dcmtk/archive/refs/tags/DCMTK-$TERMUX_PKG_VERSION.tar.gz" +TERMUX_PKG_SHA256=17705dcdb2047d1266bb4e92dbf4aa6d4967819e8e3e94f39b7df697661b4860 +TERMUX_PKG_DEPENDS="libc++, zlib, libpng, libtiff, libxml2, openssl, libiconv, libjpeg-turbo, libsndfile, libicu" +TERMUX_PKG_BUILD_IN_SRC=true +TERMUX_PKG_EXTRA_CONFIGURE_ARGS=" +-DDCMTK_NO_TRY_RUN=ON +-DDCMTK_ICONV_FLAGS_ANALYZED=ON +-DDCMTK_FIXED_ICONV_CONVERSION_FLAGS=ON +-DBUILD_SHARED_LIBS=ON +-DDCMTK_WITH_ICONV=ON +-DDCMTK_WITH_ICU=ON +-DDCMTK_WITH_XML=ON +-DDCMTK_WITH_PNG=ON +-DDCMTK_WITH_OPENJPEG=ON +-DDCMTK_WITH_OPENSSL=ON +-DDCMTK_WITH_SNDFILE=ON +-DDCMTK_WITH_TIFF=ON +-DDCMTK_WITH_ZLIB=ON +-DANDROID_TEMPORARY_FILES_LOCATION=$TERMUX_PREFIX/tmp +" + +termux_step_pre_configure() { + cp $TERMUX_PKG_BUILDER_DIR/arith.h/$TERMUX_ARCH.h $TERMUX_PKG_SRCDIR/config/include/dcmtk/config/arith.h +}