# HG changeset patch # User stechong # Date 1257896377 21600 # Node ID b04017a10111c8246e5a15504652faf9ee82f7fe # Parent d66c8cb9b9b20f299a79715a7c2fe4367436a85a Fix for Bug 9852. diff -r d66c8cb9b9b2 -r b04017a10111 core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/processes/CheckS60CustKitSupport.java --- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/processes/CheckS60CustKitSupport.java Tue Nov 10 14:39:10 2009 -0600 +++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/processes/CheckS60CustKitSupport.java Tue Nov 10 17:39:37 2009 -0600 @@ -14,16 +14,19 @@ import java.io.File; import java.util.List; -import java.util.Map; import org.eclipse.core.resources.IProject; -import org.eclipse.core.runtime.*; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.Plugin; -import com.nokia.carbide.cpp.sdk.core.*; +import com.nokia.carbide.cpp.sdk.core.ISymbianBuildContext; +import com.nokia.carbide.cpp.sdk.core.ISymbianSDK; +import com.nokia.carbide.cpp.sdk.core.SDKCorePlugin; import com.nokia.carbide.template.engine.ITemplate; import com.nokia.carbide.templatewizard.process.AbstractProjectProcess; import com.nokia.carbide.templatewizard.process.IParameter; -import com.nokia.cpp.internal.api.utils.core.*; +import com.nokia.cpp.internal.api.utils.core.Check; /** * Process used to fill in S60 specific include symbols for INF/MMP files @@ -42,6 +45,12 @@ private static final String S60_SF_FOLDER = "sf"; private static final String S60_INC_MACROS_SF = "#include \n#include \nAPP_LAYER_SYSTEMINCLUDE"; + private static final String BUILD_HELP_PREFIX = "buildHelpPrefix"; + private static final String DISABLE_HELP_STRING = "//"; + private static final String HELP_COMPILER = "epoc32/tools/cshlpcmp.bat"; + private static final String HELP_SUPPORT_MACRO = "helpSupport"; + private static final String HELP_SUPPORT_STRING = "MACRO _HELP_AVAILABLE_"; + protected IProject project; @Override @@ -51,6 +60,18 @@ String includesValue = ""; includesValue = createCustKitIncludes(template); template.getTemplateValues().put(S60_50_BUILD_MACROS, includesValue); + + boolean hasHelp = isHelpCompilerAvailable(template); + String enableHelpString = ""; + String helpSupportString = ""; + if (hasHelp) { + helpSupportString = HELP_SUPPORT_STRING; + } + else { + enableHelpString = DISABLE_HELP_STRING; + } + template.getTemplateValues().put(BUILD_HELP_PREFIX, enableHelpString); + template.getTemplateValues().put(HELP_SUPPORT_MACRO, helpSupportString); } @Override @@ -58,6 +79,25 @@ return SDKCorePlugin.getDefault(); } + private boolean isHelpCompilerAvailable(ITemplate template) { + Object object = template.getTemplateValues().get(SELECTED_BUILD_CONFIGS_VALUE_KEY); + if (object instanceof List) { + List listOfBuildConfigs = (List) object; + for (Object obj : listOfBuildConfigs) { + Check.checkContract(obj instanceof ISymbianBuildContext); + ISymbianBuildContext symbianBuildContext = (ISymbianBuildContext)obj; + ISymbianSDK sdk = symbianBuildContext.getSDK(); + if (sdk != null) { + File contextHelpCompiler = new File(sdk.getEPOCROOT() + HELP_COMPILER); + if (contextHelpCompiler.exists()) { + return true; + } + } + } + } + return false; + } + @SuppressWarnings("unchecked") /** * Check the SDK version and certain includes to figure out which include macros to add. diff -r d66c8cb9b9b2 -r b04017a10111 templates/com.nokia.carbide.cpp.templates/templates/projecttemplates/S60-PlatsecApp/group/baseName.mmp --- a/templates/com.nokia.carbide.cpp.templates/templates/projecttemplates/S60-PlatsecApp/group/baseName.mmp Tue Nov 10 14:39:10 2009 -0600 +++ b/templates/com.nokia.carbide.cpp.templates/templates/projecttemplates/S60-PlatsecApp/group/baseName.mmp Tue Nov 10 17:39:37 2009 -0600 @@ -7,6 +7,7 @@ ============================================================================ */ $(S60_50_CustomBuildIncludes) +$(helpSupport) TARGET $(baseName)_$(uid3).exe TARGETTYPE exe diff -r d66c8cb9b9b2 -r b04017a10111 templates/com.nokia.carbide.cpp.templates/templates/projecttemplates/S60-PlatsecApp/group/bld.inf --- a/templates/com.nokia.carbide.cpp.templates/templates/projecttemplates/S60-PlatsecApp/group/bld.inf Tue Nov 10 14:39:10 2009 -0600 +++ b/templates/com.nokia.carbide.cpp.templates/templates/projecttemplates/S60-PlatsecApp/group/bld.inf Tue Nov 10 17:39:37 2009 -0600 @@ -16,7 +16,7 @@ gnumakefile icons_scalable_dc.mk -gnumakefile ..\$(helpDir)\build_help.mk +$(buildHelpPrefix)gnumakefile ..\$(helpDir)\build_help.mk $(baseName).mmp diff -r d66c8cb9b9b2 -r b04017a10111 templates/com.nokia.carbide.cpp.templates/templates/projecttemplates/S60-PlatsecApp/src/baseNameAppUi.cpp --- a/templates/com.nokia.carbide.cpp.templates/templates/projecttemplates/S60-PlatsecApp/src/baseNameAppUi.cpp Tue Nov 10 14:39:10 2009 -0600 +++ b/templates/com.nokia.carbide.cpp.templates/templates/projecttemplates/S60-PlatsecApp/src/baseNameAppUi.cpp Tue Nov 10 17:39:37 2009 -0600 @@ -18,7 +18,9 @@ #include <$(baseName)_$(uid3).rsg> +#ifdef _HELP_AVAILABLE_ #include "$(baseName)_$(uid3).hlp.hrh" +#endif #include "$(baseName).hrh" #include "$(baseName).pan" #include "$(baseName)Application.h" @@ -197,11 +199,15 @@ // work. Alternatively, a patch now exists for the versions of // HTML help compiler in SDKs and can be found here along with an FAQ: // http://www3.symbian.com/faq.nsf/AllByDate/E9DF3257FD565A658025733900805EA2?OpenDocument - CArrayFixFlat* array = new(ELeave)CArrayFixFlat(1); +#ifdef _HELP_AVAILABLE_ + CArrayFixFlat* array = new(ELeave)CArrayFixFlat(1); CleanupStack::PushL(array); array->AppendL(TCoeHelpContext(KUid$(baseName)App, KGeneral_Information)); CleanupStack::Pop(array); return array; +#else + return NULL; +#endif } // End of File diff -r d66c8cb9b9b2 -r b04017a10111 templates/com.nokia.carbide.cpp.templates/templates/projecttemplates/S60-TouchUIApplication/group/baseName.mmp --- a/templates/com.nokia.carbide.cpp.templates/templates/projecttemplates/S60-TouchUIApplication/group/baseName.mmp Tue Nov 10 14:39:10 2009 -0600 +++ b/templates/com.nokia.carbide.cpp.templates/templates/projecttemplates/S60-TouchUIApplication/group/baseName.mmp Tue Nov 10 17:39:37 2009 -0600 @@ -7,6 +7,7 @@ ============================================================================ */ $(S60_50_CustomBuildIncludes) +$(helpSupport) TARGET $(baseName)_$(uid3).exe TARGETTYPE exe diff -r d66c8cb9b9b2 -r b04017a10111 templates/com.nokia.carbide.cpp.templates/templates/projecttemplates/S60-TouchUIApplication/group/bld.inf --- a/templates/com.nokia.carbide.cpp.templates/templates/projecttemplates/S60-TouchUIApplication/group/bld.inf Tue Nov 10 14:39:10 2009 -0600 +++ b/templates/com.nokia.carbide.cpp.templates/templates/projecttemplates/S60-TouchUIApplication/group/bld.inf Tue Nov 10 17:39:37 2009 -0600 @@ -16,7 +16,7 @@ gnumakefile icons_scalable_dc.mk -gnumakefile ..\$(helpDir)\build_help.mk +$(buildHelpPrefix)gnumakefile ..\$(helpDir)\build_help.mk $(baseName).mmp diff -r d66c8cb9b9b2 -r b04017a10111 templates/com.nokia.carbide.cpp.templates/templates/projecttemplates/S60-TouchUIApplication/src/baseNameAppUi.cpp --- a/templates/com.nokia.carbide.cpp.templates/templates/projecttemplates/S60-TouchUIApplication/src/baseNameAppUi.cpp Tue Nov 10 14:39:10 2009 -0600 +++ b/templates/com.nokia.carbide.cpp.templates/templates/projecttemplates/S60-TouchUIApplication/src/baseNameAppUi.cpp Tue Nov 10 17:39:37 2009 -0600 @@ -18,7 +18,9 @@ #include <$(baseName)_$(uid3).rsg> +#ifdef _HELP_AVAILABLE_ #include "$(baseName)_$(uid3).hlp.hrh" +#endif #include "$(baseName).hrh" #include "$(baseName).pan" #include "$(baseName)Application.h" @@ -197,11 +199,15 @@ // work. Alternatively, a patch now exists for the versions of // HTML help compiler in SDKs and can be found here along with an FAQ: // http://www3.symbian.com/faq.nsf/AllByDate/E9DF3257FD565A658025733900805EA2?OpenDocument +#ifdef _HELP_AVAILABLE_ CArrayFixFlat* array = new(ELeave)CArrayFixFlat(1); CleanupStack::PushL(array); array->AppendL(TCoeHelpContext(KUid$(baseName)App, KGeneral_Information)); CleanupStack::Pop(array); return array; +#else + return NULL; +#endif } // End of File