diff --git a/legacy/builder/create_cmake_rule.go b/legacy/builder/create_cmake_rule.go
index 5207eebb1b2..0a6979229fa 100644
--- a/legacy/builder/create_cmake_rule.go
+++ b/legacy/builder/create_cmake_rule.go
@@ -31,8 +31,10 @@ package builder
 
 import (
 	"fmt"
+	"io/ioutil"
 	"os"
 	"path/filepath"
+	"regexp"
 	"strings"
 
 	properties "github.com/arduino/go-properties-orderedmap"
@@ -129,7 +131,7 @@ func (s *ExportProjectCMake) Run(ctx *types.Context) error {
 	commands := []types.Command{
 		//&ContainerMergeCopySketchFiles{},
 		&ContainerAddPrototypes{},
-		//&FilterSketchSource{Source: &ctx.Source, RemoveLineMarkers: true},
+		&FilterSketchSource{Source: &ctx.Source, RemoveLineMarkers: true},
 	}
 
 	for _, command := range commands {
@@ -141,6 +143,31 @@ func (s *ExportProjectCMake) Run(ctx *types.Context) error {
 		fmt.Println(err)
 	}
 
+	// remove "#line 1 ..." from exported c_make folder sketch
+	var sketchFiles []string
+	utils.FindFilesInFolder(&sketchFiles, cmakeFolder.Join("sketch").String(), extensions, false)
+
+	for _, file := range sketchFiles {
+		input, err := ioutil.ReadFile(file)
+		if err != nil {
+			fmt.Println(err)
+			continue
+		}
+
+		lines := strings.Split(string(input), "\n")
+
+		for i, line := range lines {
+			if lineToRemove, _ := regexp.MatchString(`^#line\s\d+\s"`, line); lineToRemove == true {
+				lines[i] = ""
+			}
+		}
+		output := strings.Join(lines, "\n")
+		err = ioutil.WriteFile(file, []byte(output), 0644)
+		if err != nil {
+			fmt.Println(err)
+		}
+	}
+
 	// Extract CFLAGS, CPPFLAGS and LDFLAGS
 	var defines []string
 	var linkerflags []string