Checking in before destroying everything with flatpak-builder. :-)

This commit is contained in:
Scott Duensing 2022-12-13 19:39:30 -06:00
parent 511bf72427
commit 5db373e835
8 changed files with 78 additions and 26 deletions

1
.gitignore vendored
View file

@ -4,6 +4,7 @@ thirdparty/scintilla/
thirdparty/lexilla/
ui/generated/
cmake-build-debug/
flatpak-build/
crapForLater/
*~

View file

@ -73,10 +73,15 @@ include_directories(
add_definitions(
-Wall
-Wno-unknown-pragmas
-O0
${GTK3_CFLAGS}
)
#set_target_properties(${CMAKE_PROJECT_NAME} PROPERTIES LINK_SEARCH_START_STATIC ON)
#set_target_properties(${CMAKE_PROJECT_NAME} PROPERTIES LINK_SEARCH_END_STATIC ON)
#target_link_options(${CMAKE_PROJECT_NAME} PRIVATE -static-libgcc -static-libstdc++ -static)
target_link_libraries(${CMAKE_PROJECT_NAME}
-rdynamic
${CMAKE_SOURCE_DIR}/thirdparty/scintilla/bin/scintilla.a
@ -85,3 +90,5 @@ target_link_libraries(${CMAKE_PROJECT_NAME}
-lm
-lstdc++
)
#target_link_options(${CMAKE_PROJECT_NAME} PRIVATE -static-libgcc -static-libstdc++)

View file

@ -1,16 +1,19 @@
#!/bin/bash
pushd thirdparty
# Scintilla
[[ -d scintilla ]] && rm -rf scintilla
tar xzf scintilla531.tgz
pushd scintilla/gtk
GTK3=1 make
popd
# Lexilla
[[ -d lexilla ]] && rm -rf lexilla
tar xzf lexilla520.tgz
pushd lexilla/src
make
popd
popd

5
buildFlatpak.sh Normal file
View file

@ -0,0 +1,5 @@
#!/bin/bash
flatpak install --user flathub org.gnome.Platform//3.26 org.gnome.Sdk//3.26
flatpak-builder flatpak-build flatpak.yaml

31
flatpak.yaml Normal file
View file

@ -0,0 +1,31 @@
app-id: com.kangaroopunch.JoeyDev
runtime: org.gnome.Platform
runtime-version: '3.26'
sdk: org.gnome.Sdk
command: joeydev
modules:
- name: joeydev
buildsystem: cmake-ninja
#config-opts:
sources:
- type: dir
path: include
- type: dir
path: src
- type: dir
path: thirdparty
- type: dir
path: ui
- type: dir
path: tools
- type: file
path: buildDeps.sh
- type: file
path: CMakeLists.txt
finish-args:
- --share=ipc
- --socket=fallback-x11
- --socket=wayland
- --filesystem=host
- --share=network
- --device=dri

View file

@ -45,7 +45,7 @@
// Allocation helpers.
#define NEW(t) (t*)calloc(1, sizeof(t)) // Add check for NULL and die here.
#define DEL(v) {if(v!=NULL) {free(v); v=NULL;}}
#define DEL(v) do { if (v != NULL) { free(v); v = NULL; } break; } while(1)
// Must be the first element of all userData structs.

View file

@ -20,6 +20,10 @@
*/
#pragma clang diagnostic push
#pragma ide diagnostic ignored "EmptyDeclOrStmt"
#include <errno.h>
#include "common.h"
#include "vecparse.h"
@ -716,11 +720,14 @@ int vecparser(char *programIn, VecByteCodeT *bytecode) {
}
// Unwind variables array if needed.
/*
if (variables != NULL) {
while (arrlen(variables) > 0) {
arrdel(variables, 0);
}
}
*/
arrfree(variables);
// Unwind unresolved array if needed.
if (unresolved != NULL) {
@ -764,3 +771,6 @@ int vecparser(char *programIn, VecByteCodeT *bytecode) {
return result;
}
#pragma clang diagnostic pop

View file

@ -21,6 +21,7 @@
#pragma clang diagnostic push
//#pragma ide diagnostic ignored "EmptyDeclOrStmt"
#pragma ide diagnostic ignored "cppcoreguidelines-narrowing-conversions"
#pragma ide diagnostic ignored "hicpp-multiway-paths-covered"
@ -348,6 +349,8 @@ EVENT gboolean drawVectorImageMotionEvent(GtkWidget *widget, GdkEventMotion *eve
int temp;
char buffer[8];
(void)widget;
// If we're in a drawing action, bail out of this.
if (self->clickState != CLICK_NONE) return FALSE;
@ -416,7 +419,7 @@ EVENT void editorVectorNotify(GtkWidget *sciWidget, gint ctrlID, struct SCNotifi
}
// Release bytecode.
if (byteCode.bytes != NULL) DEL(byteCode.bytes);
DEL(byteCode.bytes);
// Mark text dirty. SCN_SAVEPOINTLEFT isn't being reliable.
setDirty(self, TRUE);
}
@ -552,7 +555,7 @@ static void loadTraceImage(VectorDataT *self, char *filename) {
cairo_surface_t *temp;
cairo_t *cr;
if (self->tracename != NULL) DEL(self->tracename);
DEL(self->tracename);
self->tracename = strdup(filename);
gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(self->fileVectorTraceImage), filename);
@ -673,7 +676,7 @@ EVENT void menuVectorFileNew(GtkWidget *object, gpointer userData) {
gtk_file_chooser_unselect_all(GTK_FILE_CHOOSER(self->fileVectorTraceImage));
}
// Clear any filename.
if (self->filename != NULL) DEL(self->filename);
DEL(self->filename);
// Refresh widget.
gtk_widget_queue_draw(self->drawVectorImage);
// Mark clean.
@ -711,7 +714,7 @@ EVENT void menuVectorFileOpen(GtkWidget *object, gpointer userData) {
setDirty(self, FALSE);
menuVectorFileNew(object, userData);
if (self->filename != NULL) DEL(self->filename);
DEL(self->filename);
self->filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
in = fopen(self->filename, "rt");
@ -740,7 +743,7 @@ EVENT void menuVectorFileOpen(GtkWidget *object, gpointer userData) {
count++;
}
fclose(in);
if (line != NULL) DEL(line);
DEL(line);
SSM(SCI_ADDTEXT, strlen(self->buffer), (sptr_t)self->buffer);
//SSM(SCI_CONVERTEOLS, SC_EOL_CR, 0);
status(self, "Image loaded.");
@ -787,17 +790,15 @@ EVENT void menuVectorFileSave(GtkWidget *object, gpointer userData) {
fprintf(out, "------------------------------------------------------------------------------\n");
fprintf(out, "%s\n", code);
fclose(out);
// Release code.
DEL(code);
status(self, "Saved.");
// We're clean now.
setDirty(self, FALSE);
} else {
// Release code.
DEL(code);
//***TODO*** Something bad happened.
}
// Release code.
DEL(code);
}
}
@ -816,7 +817,7 @@ EVENT void menuVectorFileSaveAs(GtkWidget *object, gpointer userData) {
gtk_file_chooser_set_do_overwrite_confirmation(GTK_FILE_CHOOSER(dialog), TRUE);
if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) {
if (self->filename != NULL) DEL(self->filename);
DEL(self->filename);
self->filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
menuVectorFileSave(object, self);
}
@ -855,9 +856,7 @@ static void renderBytecode(VecByteCodeT *bytecode, VectorDataT *self) {
debug("-----------------------------------\n");
// Clear collected points array.
while (arrlen(self->pointList) > 0) {
arrdel(self->pointList, 0);
}
arrfree(self->pointList);
// Reset JoeyLib draw state.
jlPaletteDefault(self->jlc);
@ -1144,14 +1143,10 @@ static void renderBytecode(VecByteCodeT *bytecode, VectorDataT *self) {
debug("Points: %ld\n", arrlen(self->pointList));
// Clear variables.
while (arrlen(self->variables) > 0) {
arrdel(self->variables, 0);
}
arrfree(self->variables);
// Clear stack.
while (arrlen(stack) > 0) {
arrdel(stack, 0);
}
arrfree(stack);
// Refresh widget.
gtk_widget_queue_draw(self->drawVectorImage);
@ -1554,11 +1549,11 @@ static void winVectorDelete(gpointer userData) {
cairo_surface_destroy(self->surface);
cairo_surface_destroy(self->scaled);
cairo_surface_destroy(self->target);
if (self->trace != NULL) cairo_surface_destroy(self->trace);
if (self->filename != NULL) DEL(self->filename);
if (self->title != NULL) DEL(self->title);
if (self->tracename != NULL) DEL(self->tracename);
if (self->buffer != NULL) DEL(self->buffer);
if (self->trace != NULL) cairo_surface_destroy(self->trace);
DEL(self->filename);
DEL(self->title);
DEL(self->tracename);
DEL(self->buffer);
DEL(self);
}