new package: dcmtk

This commit is contained in:
Pooya Moradi 2022-09-30 07:48:24 +08:00 committed by Henrik Grimler
parent 4e5ecbf24a
commit 1768d41f31
No known key found for this signature in database
GPG Key ID: B0076E490B71616B
8 changed files with 436 additions and 0 deletions

View File

@ -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()

View File

@ -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 <pwd.h>
#endif
+#ifndef HAVE_PASSWD_GECOS
+#undef pw_gecos
+#endif
END_EXTERN_C
#ifdef HAVE_WINDOWS_H

View File

@ -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;
}

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

31
packages/dcmtk/build.sh Normal file
View File

@ -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
}