BUILD: CONF: Added "BUILD_TYPE" environment variable 91/18591/1
authorjm.jaemin.kim <jm.jaemin.kim@samsung.com>
Thu, 27 Mar 2014 01:30:03 +0000 (10:30 +0900)
committerjm.jaemin.kim <jm.jaemin.kim@samsung.com>
Thu, 27 Mar 2014 01:30:03 +0000 (10:30 +0900)
This environment variable can be "Debug" or "Release".
User uses this variable in .spec file like the following example:
ex) project.spec
 %build
 cmake . -DCMAKE_BUILD_TYPE=%{BUILD_TYPE}

Signed-off-by: jm.jaemin.kim <jm.jaemin.kim@samsung.com>
Change-Id: I2e1b7e1bb155dff4f4df523ee573721498cecce7

org.tizen.nativeplatform/src/org/tizen/nativeplatform/build/PlatformConfigurationEnvVarSupplier.java
org.tizen.nativeplatform/src/org/tizen/nativeplatform/build/PlatformConfigurationManager.java

index f434c59..2412563 100644 (file)
@@ -28,6 +28,7 @@
 package org.tizen.nativeplatform.build;
 
 import java.util.ArrayList;
+import java.util.List;
 
 import org.eclipse.cdt.managedbuilder.core.IConfiguration;
 import org.eclipse.cdt.managedbuilder.envvar.IBuildEnvironmentVariable;
@@ -43,30 +44,47 @@ public class PlatformConfigurationEnvVarSupplier implements
     @Override
     public IBuildEnvironmentVariable getVariable(String variableName, IConfiguration configuration,
             IEnvironmentVariableProvider provider) {
-        // set "SBI_SYSROOT" variable
-        String basePath = PlatformConfigurationManager.getRootstrapPath(configuration);
-        String sysrootPath = SmartBuildInterface.getInstance().getPlatformRootstrapPath(basePath);
-        if (sysrootPath == null) {
-            sysrootPath = "";
+
+        if (variableName.equals("SBI_SYSROOT")) {
+            // set "SBI_SYSROOT" variable
+            String basePath = PlatformConfigurationManager.getRootstrapPath(configuration);
+            String sysrootPath = SmartBuildInterface.getInstance().getPlatformRootstrapPath(
+                    basePath);
+            if (sysrootPath == null) {
+                sysrootPath = "";
+            }
+            return new BuildEnvVar("SBI_SYSROOT", sysrootPath,
+                    IBuildEnvironmentVariable.ENVVAR_REPLACE, null);
+
+        } else if (variableName.equals("BUILD_TYPE")) {
+            String buildtype = "";
+            if (configuration.getBaseId().contains(
+                    PlatformConfigurationManager.SBI_DEFAULT_DEBUG_CONFIGRATION_ID)) {
+                buildtype = "Debug";
+            } else if (configuration.getBaseId().contains(
+                    PlatformConfigurationManager.SBI_DEFAULT_RELEASE_CONFIGRATION_ID)) {
+                buildtype = "Release";
+            } else {
+                buildtype = "";
+            }
+            return new BuildEnvVar("BUILD_TYPE", buildtype,
+                    IBuildEnvironmentVariable.ENVVAR_REPLACE, null);
         }
-        return new BuildEnvVar("SBI_SYSROOT", sysrootPath,
-                IBuildEnvironmentVariable.ENVVAR_REPLACE, null);
+        return null;
     }
 
     @Override
     public IBuildEnvironmentVariable[] getVariables(IConfiguration configuration,
             IEnvironmentVariableProvider provider) {
 
-        ArrayList<IBuildEnvironmentVariable> list = new ArrayList<IBuildEnvironmentVariable>();
+        List<IBuildEnvironmentVariable> list = new ArrayList<IBuildEnvironmentVariable>();
+        final String[] buildEnvs = { "SBI_SYSROOT", "BUILD_TYPE" };
+        String[] envs = buildEnvs;
 
-        // set "SBI_SYSROOT" variable
-        String basePath = PlatformConfigurationManager.getRootstrapPath(configuration);
-        String sysrootPath = SmartBuildInterface.getInstance().getPlatformRootstrapPath(basePath);
-        if (sysrootPath == null) {
-            sysrootPath = "";
+        for (String env : envs) {
+            list.add(getVariable(env, configuration, provider));
         }
-        list.add(new BuildEnvVar("SBI_SYSROOT", sysrootPath,
-                IBuildEnvironmentVariable.ENVVAR_REPLACE, null));
+
         return list.toArray(new IBuildEnvironmentVariable[0]);
     }
 
index 76fe304..38547a1 100644 (file)
@@ -55,6 +55,8 @@ public class PlatformConfigurationManager extends CommonConfigurationManager {
     public static final String SBI_PROJECT_TYPE_ID = "org.tizen.nativebuild.target.sbi.gcc45.platform";
     public static final String SBI_DEFAULT_I386_CONFIGRATION_ID = "org.tizen.nativeide.config.sbi.gcc45.platform.emulator";
     public static final String SBI_DEFAULT_ARM_CONFIGRATION_ID = "org.tizen.nativeide.config.sbi.gcc45.platform.device";
+    public static final String SBI_DEFAULT_DEBUG_CONFIGRATION_ID = "org.tizen.nativeide.config.sbi.gcc45.platform.debug";
+    public static final String SBI_DEFAULT_RELEASE_CONFIGRATION_ID = "org.tizen.nativeide.config.sbi.gcc45.platform.release";
 
     static final String GBS_TOOL_ID = "org.tizen.nativeide.tool.gbs";
     static final String GBS_TOOL_INCLUDE_OPTION_ID = "org.tizen.gbs.include.paths";