Skip to content
Commits on Source (5)
sudo: required
dist: trusty
dist: xenial
language: generic
env:
matrix:
- BUILD_TYPE=Release
......@@ -12,7 +11,7 @@ env:
install:
- sudo add-apt-repository ppa:gert-die/trusty-mia -y
- sudo add-apt-repository ppa:rebuntu16/avogadro+unofficial -y
- sudo add-apt-repository ppa:gert-die/ginkgocadx-trusty -y
- sudo apt-get update -qq
- sudo apt-get install -y libvtk6-dev libinsighttoolkit4-dev libdcmtk-dev libcairo2-dev
libcurl4-gnutls-dev libfftw3-dev libfreetype6-dev libgtk2.0-dev libjsoncpp-dev libmysqlclient-dev
......
......@@ -2,7 +2,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
PROJECT(BUILD_ALL)
SET( GINKGO_VERSION 3.8.6)
SET( GINKGO_VERSION 3.8.8)
SET( USE_PATCHED_LIBS FALSE CACHE BOOL "Use patched libraries")
SET( BUILD_VISUALIZATION_EXT TRUE CACHE BOOL "Build Visualization extention")
......@@ -31,6 +31,8 @@ include(FindPkgConfig)
include(CheckCXXCompilerFlag)
set(CMAKE_CXX_STANDARD_DEFAULT "")
IF (((${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") AND
(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 5.3.0)) OR
((${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang") AND
......@@ -38,15 +40,12 @@ IF (((${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") AND
MESSAGE(STATUS "Compiler has full c++11 support")
# g++ >= 6.0 sets std=c++14 by default
IF (${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU")
IF (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 6.0.0)
SET(CXX_11_FLAG "-std=c++11")
ENDIF()
ELSE()
SET(CXX_11_FLAG "-std=c++11")
IF (NOT ( ${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") OR
(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 6.0.0))
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
ENDIF()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CXX_11_FLAG}")
ELSE()
CHECK_CXX_COMPILER_FLAG("-std=c++11" HAS_GNU_CXX11_FLAG)
IF(HAS_GNU_CXX11_FLAG)
......@@ -62,6 +61,7 @@ ELSE()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CXX_11_FLAG}")
ENDIF()
#doesn't work... using custom build
#IF(LINUX)
#FIND_PACKAGE(LIBCURL REQUIRED)
......@@ -93,7 +93,7 @@ SET_CUSTOM_ITK_PACKAGE()
ENDIF()
IF(NOT USE_CUSTOM_DCMTK)
FIND_PACKAGE(DCMTK 3.6.1 REQUIRED)
FIND_PACKAGE(DCMTK 3.6.4 REQUIRED)
ELSE()
MESSAGE(STATUS "Using custom DCMTK")
SET_CUSTOM_DCMTK_PACKAGE()
......@@ -135,7 +135,10 @@ INCLUDE_DIRECTORIES(${CAIRO_INCLUDE_DIRS})
LINK_DIRECTORIES(${CAIRO_LIBRARY_DIRS})
IF(LINUX)
PKG_CHECK_MODULES(GTK REQUIRED gtk+-2.0)
STRING(REGEX MATCH "gtk[23]" GTK_VERSION_SENTINEL "${wxWidgets_LIBRARIES}")
STRING(REGEX REPLACE "gtk([23])" "gtk+-\\1.0" GTK_PKG_CONFIG_PACKAGE "${GTK_VERSION_SENTINEL}")
PKG_CHECK_MODULES(GTK REQUIRED ${GTK_PKG_CONFIG_PACKAGE})
INCLUDE_DIRECTORIES(${GTK_INCLUDE_DIRS})
LINK_DIRECTORIES(${GTK_LIBRARY_DIRS})
......@@ -187,3 +190,4 @@ SET( DEST "${CMAKE_CURRENT_BINARY_DIR}/dist" )
PACKAGE_RULES( "${PROJECT_NAME}" "${ARCH}" "${DEST}" )
ENDIF()
MESSAGE(STATUS "Using CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS}")
......@@ -208,27 +208,6 @@ IF (MACOS)
LINK_DIRECTORIES(${XmlRpc++_DIR})
ENDIF()
IF (LINUX)
IF (GTK2_FOUND)
INCLUDE_DIRECTORIES(${GTK2_INCLUDE_DIRS})
ELSE ()
MESSAGE("-----------------GTK2 NOT FOUND--------------------")
INCLUDE_DIRECTORIES(/usr/include/gtk-2.0
/usr/include/atk-1.0
/usr/include/pango-1.0
/usr/include/gio-unix-2.0/
/usr/include/glib-2.0
/usr/lib/i386-linux-gnu/glib-2.0/include
/usr/include/freetype2
/usr/include/libpng12
/usr/lib/gtk-2.0/include
/usr/include/cairo
/usr/include/gdk-pixbuf-2.0
/usr/include/pixman-1
)
ENDIF ()
ENDIF()
################ TARGET ################
......
......@@ -555,13 +555,14 @@ void wxVTKRenderWindowInteractor::OnSize(wxSizeEvent& /*event*/)
GtkWidget* parent_widget = GetParent()->GetHandle();
if (parent_widget != NULL) {
gtk_widget_realize(parent_widget);
Window parent_wid = GDK_WINDOW_XWINDOW( parent_widget->window );
GdkWindow *window = gtk_widget_get_window(parent_widget);
Window parent_wid = GDK_WINDOW_XID(window);
RenderWindow->SetParentId(reinterpret_cast<void *>(parent_wid));
} else {
RenderWindow->SetParentId(NULL);
}
gtk_widget_realize(widget);
Window wid = GDK_WINDOW_XWINDOW( widget->window );
Window wid = GDK_WINDOW_XID( gtk_widget_get_window(widget) );
RenderWindow->SetWindowId(reinterpret_cast<void *>(wid));
SetCurrent(*GLContext);
......
......@@ -172,7 +172,7 @@ OFCondition Association::SendObject(DcmDataset *dataset)
T_DIMSE_C_StoreRSP rsp;
// check if we SOPClass and SOPInstance in dataset
if (!DU_findSOPClassAndInstanceInDataSet(dataset, sopClass, sopInstance)) {
if (!DU_findSOPClassAndInstanceInDataSet(dataset, sopClass, sizeof(sopClass), sopInstance, sizeof(sopInstance))) {
return makeOFCondition(OFM_dcmnet, DIMSEC_BADDATA, OF_error, "No SOPClass or SOPInstanceUID found on dataset");
}
......
......@@ -92,7 +92,9 @@ OFCondition FindAssociation::findSCU(T_ASC_Association *assoc, DcmDataset *query
callbackData.pCaller = this;
callbackData.assoc = assoc;
int response_count = 0;
cond = DIMSE_findUser(assoc, presId, &req, query,
response_count,
findCallback, (void*) &callbackData,
(m_timeout == 0) ? DIMSE_BLOCKING : DIMSE_NONBLOCKING,
m_timeout,
......
......@@ -639,7 +639,7 @@ void GetAssociation::storeSCPCallback(void *callbackData, T_DIMSE_StoreProgress
*/
if (rsp->DimseStatus == STATUS_Success) {
/* which SOP class and SOP instance ? */
if (!DU_findSOPClassAndInstanceInDataSet(imageDataSet, sopClass, sopInstance)) {
if (!DU_findSOPClassAndInstanceInDataSet(imageDataSet, sopClass, sizeof(sopClass), sopInstance, sizeof(sopInstance))) {
rsp->DimseStatus = STATUS_STORE_Error_DataSetDoesNotMatchSOPClass;
LOG_ERROR(caller->ambitolog, "No se pudo encontrar SOPClass o SOPInstanceUID en el dataset");
} else if (strcmp(sopClass, req->AffectedSOPClassUID) != 0) {
......
......@@ -106,7 +106,7 @@ DcmElement* DICOMImg2DCM::CrearElementoConValor(const char* s)
DcmTagKey key(0xffff, 0xffff);
const DcmDataDictionary& globalDataDict = dcmDataDict.rdlock();
const DcmDictEntry *dicent = globalDataDict.findEntry(dicName.c_str());
dcmDataDict.unlock();
dcmDataDict.rdunlock();
if (dicent != NULL) {
// found dictionary name, copy group and element number
key = dicent->getKey();
......@@ -403,7 +403,7 @@ void DICOMImg2DCM::Inicializar(D2DSource* plugEntrada, IInspectCallBack* pICallb
}
}
}
dcmDataDict.unlock();
dcmDataDict.wrunlock();
}
......
......@@ -235,7 +235,7 @@ OFCondition GIL::DICOM::Service::acceptAssociation()
ASC_setAPTitles(assoc->params, NULL, NULL, m_localAET.c_str());
// acknowledge or reject this association
cond = ASC_getApplicationContextName(assoc->params, buf);
cond = ASC_getApplicationContextName(assoc->params, buf, sizeof(buf));
if ((cond.bad()) || strcmp(buf, UID_StandardApplicationContext) != 0) {
// reject: the application context name is not supported
T_ASC_RejectParameters rej = {
......
......@@ -634,7 +634,8 @@ static OFCondition storeSCU(T_ASC_Association * assoc, const char *fname)
/* figure out which SOP class and SOP instance is encapsulated in the file */
if (!DU_findSOPClassAndInstanceInDataSet(dcmff.getDataset(),
sopClass, sopInstance, opt_correctUIDPadding)) {
sopClass, sizeof(sopClass), sopInstance, sizeof(sopInstance),
opt_correctUIDPadding)) {
LOG_DEBUG(LOGGER, "No SOP Class & Instance UIDs in file " << fname);
return DIMSE_BADDATA;
}
......@@ -695,7 +696,7 @@ static OFCondition storeSCU(T_ASC_Association * assoc, const char *fname)
/* figure out which SOP class and SOP instance is encapsulated in the file */
if (!DU_findSOPClassAndInstanceInDataSet(dcmff.getDataset(),
sopClass, sopInstance, opt_correctUIDPadding)) {
sopClass, sizeof(sopClass), sopInstance, sizeof(sopInstance), opt_correctUIDPadding)) {
LOG_DEBUG(LOGGER, "No SOP Class & Instance UIDs in file " << outfname);
return DIMSE_BADDATA;
}
......@@ -1028,7 +1029,8 @@ void DicomStoreAssociation::Store(ListaRutas listaFicheros, const GNC::GCS::Ptr<
errmsg(strStream.str(), opt_haltOnUnsuccessfulStore);
LOG_ERROR("C-STORE", strStream.str().c_str());
} else {
if (!DU_findSOPClassAndInstanceInFile(currentFilename, sopClassUID, sopInstanceUID)) {
if (!DU_findSOPClassAndInstanceInFile(currentFilename, sopClassUID, sizeof(sopClassUID),
sopInstanceUID, sizeof(sopInstanceUID))) {
ignoreName = OFTrue;
std::stringstream strStream;
strStream << "SOP class (o instance) no establecido en fichero: " << currentFilename;
......
......@@ -22,8 +22,10 @@ BEGIN_EXTERN_C
#endif
#include <openssl/rand.h>
#include <openssl/err.h>
#include <openssl/x509_vfy.h>
END_EXTERN_C
#include "dcmtk/dcmtls/tlstrans.h"
#include "dcmtk/dcmnet/dicom.h"
......
......@@ -37,7 +37,8 @@ public:
* the choice of the secure transport layer code.
* @param randFile path to file used to feed the random generator
*/
GTLSTransportLayer(int networkRole, const char *randFile) : DcmTLSTransportLayer(networkRole, randFile) {}
GTLSTransportLayer(int networkRole, const char *randFile) :
DcmTLSTransportLayer(static_cast<T_ASC_NetworkRole>(networkRole), randFile, OFTrue) {}
/// destructor
virtual ~GTLSTransportLayer();
......
......@@ -691,7 +691,7 @@ std::string DICOMManager::GetDescription(const std::string &clave) const
DcmTagKey key(g,e);
const DcmDataDictionary& globalDataDict = dcmDataDict.rdlock();
const DcmDictEntry *dicent = globalDataDict.findEntry(key,NULL);
dcmDataDict.unlock();
dcmDataDict.rdunlock();
if (dicent != NULL) {
return std::string(dicent->getTagName());
}
......@@ -753,7 +753,7 @@ DcmElement* DICOMManager::CrearElementoConValor(const char* s)
DcmTagKey key(0xffff, 0xffff);
const DcmDataDictionary& globalDataDict = dcmDataDict.rdlock();
const DcmDictEntry *dicent = globalDataDict.findEntry(dicName.c_str());
dcmDataDict.unlock();
dcmDataDict.rdunlock();
if (dicent != NULL) {
// found dictionary name, copy group and element number
key = dicent->getKey();
......
......@@ -1590,7 +1590,7 @@ void PACSController::DumpFileElements(const std::string& rutaFichero, IInspectCa
callback->Inspect(keyStr, descStr, valStr);
}
}
dcmDataDict.unlock();
dcmDataDict.wrunlock();
}
}
......
......@@ -54,7 +54,7 @@ public:
DcmDictEntry entry(*(*it));
listOfStrings.push_back(wxString::FromUTF8(entry.getTagName()));
}
dcmDataDict.unlock();
dcmDataDict.wrunlock();
listOfStrings.Sort();
m_pTag->Append(listOfStrings);
......@@ -69,7 +69,7 @@ public:
wxString tagName = m_pTag->GetStringSelection();
const DcmDataDictionary& globalDataDict = dcmDataDict.rdlock();
const DcmDictEntry* entry = globalDataDict.findEntry(tagName.ToUTF8());
dcmDataDict.unlock();
dcmDataDict.rdunlock();
if (entry != NULL) {
m_pTextGroup->SetValue(wxString::Format(wxT("%04x"),entry->getGroup()));
m_pTextElement->SetValue(wxString::Format(wxT("%04x"),entry->getElement()));
......
ginkgocadx (3.8.7-3) UNRELEASED; urgency=medium
ginkgocadx (3.8.8-1) unstable; urgency=medium
[ Andreas Tille ]
* Drop custom compression settings
-- Andreas Tille <tille@debian.org> Thu, 10 Jan 2019 11:17:59 +0100
[ Gert Wollny ]
* New upstream version 3.8.8
* d/control: Update required dcmtk version to 3.6.4
-- Gert Wollny <gewo@debian.org> Sat, 12 Jan 2019 18:13:46 +0100
ginkgocadx (3.8.7-2) unstable; urgency=medium
......
......@@ -10,7 +10,7 @@ Build-Depends: debhelper (>= 11~),
cmake,
libcairo2-dev,
libcurl4-gnutls-dev,
libdcmtk-dev,
libdcmtk-dev ( >= 3.6.4 ),
libfftw3-dev,
libfreetype6-dev,
libgtk2.0-dev,
......