Hi,
I am trying to change the autoconf build system such that
functions/symbols from lcms2_internal.h are no longer exported in the
shared library, similar to the Windows build. This has progressed fine
so far, but the testsuite uses several of these functions (see attached
diff). If they are no longer publicly available in the shared library,
testbed/testcms cannot be built.
How is the Windows build working around this?
Thanks
Thomas
--- a/src/lcms2_internal.h
+++ b/src/lcms2_internal.h
@@ -771,9 +771,9 @@
// Interpolation
---------------------------------------------------------------------------------------------------------
-cmsInterpParams* _cmsComputeInterpParams(cmsContext ContextID, int
nSamples, int InputChan, int OutputChan, const void* Table, cmsUInt32Number
dwFlags);
+CMSAPI cmsInterpParams* _cmsComputeInterpParams(cmsContext ContextID, int
nSamples, int InputChan, int OutputChan, const void* Table, cmsUInt32Number
dwFlags);
cmsInterpParams* _cmsComputeInterpParamsEx(cmsContext ContextID, const
cmsUInt32Number nSamples[], int InputChan, int OutputChan, const void* Table,
cmsUInt32Number dwFlags);
-void _cmsFreeInterpParams(cmsInterpParams* p);
+CMSAPI void _cmsFreeInterpParams(cmsInterpParams* p);
cmsBool _cmsSetInterpolationRoutine(cmsContext ContextID,
cmsInterpParams* p);
// Curves
----------------------------------------------------------------------------------------------------------------
@@ -824,15 +824,15 @@
// Special Stages (cannot be saved)
-cmsStage* _cmsStageAllocLab2XYZ(cmsContext ContextID);
-cmsStage* _cmsStageAllocXYZ2Lab(cmsContext ContextID);
+CMSAPI cmsStage* _cmsStageAllocLab2XYZ(cmsContext ContextID);
+CMSAPI cmsStage* _cmsStageAllocXYZ2Lab(cmsContext ContextID);
cmsStage* _cmsStageAllocLabPrelin(cmsContext ContextID);
-cmsStage* _cmsStageAllocLabV2ToV4(cmsContext ContextID);
+CMSAPI cmsStage* _cmsStageAllocLabV2ToV4(cmsContext ContextID);
cmsStage* _cmsStageAllocLabV2ToV4curves(cmsContext ContextID);
-cmsStage* _cmsStageAllocLabV4ToV2(cmsContext ContextID);
-cmsStage* _cmsStageAllocNamedColor(cmsNAMEDCOLORLIST* NamedColorList,
cmsBool UsePCS);
-cmsStage* _cmsStageAllocIdentityCurves(cmsContext ContextID, int
nChannels);
-cmsStage* _cmsStageAllocIdentityCLut(cmsContext ContextID, int nChan);
+CMSAPI cmsStage* _cmsStageAllocLabV4ToV2(cmsContext ContextID);
+CMSAPI cmsStage* _cmsStageAllocNamedColor(cmsNAMEDCOLORLIST*
NamedColorList, cmsBool UsePCS);
+CMSAPI cmsStage* _cmsStageAllocIdentityCurves(cmsContext ContextID, int
nChannels);
+CMSAPI cmsStage* _cmsStageAllocIdentityCLut(cmsContext ContextID, int
nChan);
cmsStage* _cmsStageNormalizeFromLabFloat(cmsContext ContextID);
cmsStage* _cmsStageNormalizeFromXyzFloat(cmsContext ContextID);
cmsStage* _cmsStageNormalizeToLabFloat(cmsContext ContextID);
@@ -899,7 +899,7 @@
// LUT optimization
------------------------------------------------------------------------------------------------
-cmsUInt16Number _cmsQuantizeVal(cmsFloat64Number i, int MaxSamples);
+CMSAPI cmsUInt16Number _cmsQuantizeVal(cmsFloat64Number i, int MaxSamples);
int _cmsReasonableGridpointsByColorspace(cmsColorSpaceSignature
Colorspace, cmsUInt32Number dwFlags);
cmsBool _cmsEndPointsBySpace(cmsColorSpaceSignature Space,
@@ -933,7 +933,7 @@
cmsBool _cmsFormatterIsFloat(cmsUInt32Number Type);
cmsBool _cmsFormatterIs8bit(cmsUInt32Number Type);
-cmsFormatter _cmsGetFormatter(cmsContext ContextID,
+CMSAPI cmsFormatter _cmsGetFormatter(cmsContext ContextID,
cmsUInt32Number Type, // Specific
type, i.e. TYPE_RGB_8
cmsFormatterDirection Dir,
cmsUInt32Number dwFlags);
@@ -942,8 +942,8 @@
#ifndef CMS_NO_HALF_SUPPORT
// Half float
-cmsFloat32Number _cmsHalf2Float(cmsUInt16Number h);
-cmsUInt16Number _cmsFloat2Half(cmsFloat32Number flt);
+CMSAPI cmsFloat32Number _cmsHalf2Float(cmsUInt16Number h);
+CMSAPI cmsUInt16Number _cmsFloat2Half(cmsFloat32Number flt);
#endif
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Lcms-user mailing list
Lcms-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lcms-user