diff --git a/.gitignore b/.gitignore index 741b20b3a..87db40c4d 100644 --- a/.gitignore +++ b/.gitignore @@ -22,8 +22,6 @@ v2/test/**/frontend/dist v2/test/**/build/ v2/test/frameless/icon.png v2/test/hidden/icon.png -v2/internal/ffenestri/runtime.c -v2/internal/runtime/assets/desktop.js v2/test/kitchensink/frontend/public/bundle.* v2/pkg/parser/testproject/frontend/wails v2/test/kitchensink/frontend/public diff --git a/v2/internal/ffenestri/ffenestri_darwin.c b/v2/internal/ffenestri/ffenestri_darwin.c index d72de4f40..bd4d350b6 100644 --- a/v2/internal/ffenestri/ffenestri_darwin.c +++ b/v2/internal/ffenestri/ffenestri_darwin.c @@ -98,15 +98,15 @@ #define NSAlertThirdButtonReturn 1002 // References to assets -extern const unsigned char *assets[]; +#include "assets.h" extern const unsigned char runtime; // Tray icons -extern const unsigned char *trayIcons[]; +#include "trayicons.h" // Dialog icons extern const unsigned char *defaultDialogIcons[]; -extern const unsigned char *userDialogIcons[]; +#include "userdialogicons.h" // MAIN DEBUG FLAG int debug; diff --git a/v2/internal/html/assetbundle.go b/v2/internal/html/assetbundle.go index 808b884c2..414986e0f 100644 --- a/v2/internal/html/assetbundle.go +++ b/v2/internal/html/assetbundle.go @@ -156,7 +156,7 @@ func (a *AssetBundle) WriteToCFile(targetDir string) (string, error) { var cdata strings.Builder // Write header - header := `// assets.c + header := `// assets.h // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL. // This file was auto-generated. DO NOT MODIFY. @@ -185,7 +185,7 @@ func (a *AssetBundle) WriteToCFile(targetDir string) (string, error) { } // Save file - assetsFile := filepath.Join(targetDir, "assets.c") + assetsFile := filepath.Join(targetDir, "assets.h") err = ioutil.WriteFile(assetsFile, []byte(cdata.String()), 0600) if err != nil { return "", err diff --git a/v2/pkg/commands/build/base.go b/v2/pkg/commands/build/base.go index 71f8b9e48..02e7f105c 100644 --- a/v2/pkg/commands/build/base.go +++ b/v2/pkg/commands/build/base.go @@ -206,6 +206,15 @@ func (b *BaseBuilder) CompileProject(options *Options) error { // Set GO111MODULE environment variable cmd.Env = append(os.Environ(), "GO111MODULE=on") + // Add CGO flags + // We use the project/build dir as a temporary place for our generated c headers + buildBaseDir, err := fs.RelativeToCwd("build") + if err != nil { + return err + } + + cmd.Env = append(os.Environ(), fmt.Sprintf("CGO_CFLAGS=-I%s", buildBaseDir)) + // Setup buffers var stdo, stde bytes.Buffer cmd.Stdout = &stdo diff --git a/v2/pkg/commands/build/build.go b/v2/pkg/commands/build/build.go index 59436e2c5..e36f466fe 100644 --- a/v2/pkg/commands/build/build.go +++ b/v2/pkg/commands/build/build.go @@ -113,10 +113,6 @@ func Build(options *Options) (string, error) { // Build the base assets outputLogger.Println(" - Compiling Assets") - err = builder.BuildRuntime(options) - if err != nil { - return "", err - } err = builder.BuildAssets(options) if err != nil { return "", err diff --git a/v2/pkg/commands/build/desktop.go b/v2/pkg/commands/build/desktop.go index 9e3af1415..5805f562b 100644 --- a/v2/pkg/commands/build/desktop.go +++ b/v2/pkg/commands/build/desktop.go @@ -64,7 +64,10 @@ func (d *DesktopBuilder) BuildBaseAssets(assets *html.AssetBundle, options *Opti outputLogger.Print(" - Embedding Assets...") // Get target asset directory - assetDir := fs.RelativePath("../../../internal/ffenestri") + assetDir, err := fs.RelativeToCwd("build") + if err != nil { + return err + } // Dump assets as C assetsFile, err := assets.WriteToCFile(assetDir) diff --git a/v2/pkg/commands/build/desktop_darwin.go b/v2/pkg/commands/build/desktop_darwin.go index 3831ddf0d..76fe05897 100644 --- a/v2/pkg/commands/build/desktop_darwin.go +++ b/v2/pkg/commands/build/desktop_darwin.go @@ -46,7 +46,7 @@ func (d *DesktopBuilder) processTrayIcons(assetDir string, options *Options) err // Setup target targetFilename := "trayicons" - targetFile := filepath.Join(assetDir, targetFilename+".c") + targetFile := filepath.Join(assetDir, targetFilename+".h") d.addFileToDelete(targetFile) var dataBytes []byte @@ -55,7 +55,7 @@ func (d *DesktopBuilder) processTrayIcons(assetDir string, options *Options) err var cdata strings.Builder // Write header - header := `// trayicons.c + header := `// trayicons.h // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL. // This file was auto-generated. DO NOT MODIFY. @@ -135,7 +135,7 @@ func (d *DesktopBuilder) processDialogIcons(assetDir string, options *Options) e // Setup target targetFilename := "userdialogicons" - targetFile := filepath.Join(assetDir, targetFilename+".c") + targetFile := filepath.Join(assetDir, targetFilename+".h") d.addFileToDelete(targetFile) var dataBytes []byte @@ -144,7 +144,7 @@ func (d *DesktopBuilder) processDialogIcons(assetDir string, options *Options) e var cdata strings.Builder // Write header - header := `// userdialogicons.c + header := `// userdialogicons.h // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL. // This file was auto-generated. DO NOT MODIFY.