Checking in before destroying everything with flatpak-builder. :-)
This commit is contained in:
parent
511bf72427
commit
5db373e835
8 changed files with 78 additions and 26 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -4,6 +4,7 @@ thirdparty/scintilla/
|
||||||
thirdparty/lexilla/
|
thirdparty/lexilla/
|
||||||
ui/generated/
|
ui/generated/
|
||||||
cmake-build-debug/
|
cmake-build-debug/
|
||||||
|
flatpak-build/
|
||||||
crapForLater/
|
crapForLater/
|
||||||
|
|
||||||
*~
|
*~
|
||||||
|
|
|
@ -73,10 +73,15 @@ include_directories(
|
||||||
|
|
||||||
add_definitions(
|
add_definitions(
|
||||||
-Wall
|
-Wall
|
||||||
|
-Wno-unknown-pragmas
|
||||||
-O0
|
-O0
|
||||||
${GTK3_CFLAGS}
|
${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}
|
target_link_libraries(${CMAKE_PROJECT_NAME}
|
||||||
-rdynamic
|
-rdynamic
|
||||||
${CMAKE_SOURCE_DIR}/thirdparty/scintilla/bin/scintilla.a
|
${CMAKE_SOURCE_DIR}/thirdparty/scintilla/bin/scintilla.a
|
||||||
|
@ -85,3 +90,5 @@ target_link_libraries(${CMAKE_PROJECT_NAME}
|
||||||
-lm
|
-lm
|
||||||
-lstdc++
|
-lstdc++
|
||||||
)
|
)
|
||||||
|
|
||||||
|
#target_link_options(${CMAKE_PROJECT_NAME} PRIVATE -static-libgcc -static-libstdc++)
|
||||||
|
|
|
@ -1,16 +1,19 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
pushd thirdparty
|
pushd thirdparty
|
||||||
|
|
||||||
# Scintilla
|
# Scintilla
|
||||||
[[ -d scintilla ]] && rm -rf scintilla
|
[[ -d scintilla ]] && rm -rf scintilla
|
||||||
tar xzf scintilla531.tgz
|
tar xzf scintilla531.tgz
|
||||||
pushd scintilla/gtk
|
pushd scintilla/gtk
|
||||||
GTK3=1 make
|
GTK3=1 make
|
||||||
popd
|
popd
|
||||||
|
|
||||||
# Lexilla
|
# Lexilla
|
||||||
[[ -d lexilla ]] && rm -rf lexilla
|
[[ -d lexilla ]] && rm -rf lexilla
|
||||||
tar xzf lexilla520.tgz
|
tar xzf lexilla520.tgz
|
||||||
pushd lexilla/src
|
pushd lexilla/src
|
||||||
make
|
make
|
||||||
popd
|
popd
|
||||||
|
|
||||||
popd
|
popd
|
||||||
|
|
5
buildFlatpak.sh
Normal file
5
buildFlatpak.sh
Normal 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
31
flatpak.yaml
Normal 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
|
|
@ -45,7 +45,7 @@
|
||||||
|
|
||||||
// Allocation helpers.
|
// Allocation helpers.
|
||||||
#define NEW(t) (t*)calloc(1, sizeof(t)) // Add check for NULL and die here.
|
#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.
|
// Must be the first element of all userData structs.
|
||||||
|
|
|
@ -20,6 +20,10 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#pragma clang diagnostic push
|
||||||
|
#pragma ide diagnostic ignored "EmptyDeclOrStmt"
|
||||||
|
|
||||||
|
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "vecparse.h"
|
#include "vecparse.h"
|
||||||
|
@ -716,11 +720,14 @@ int vecparser(char *programIn, VecByteCodeT *bytecode) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Unwind variables array if needed.
|
// Unwind variables array if needed.
|
||||||
|
/*
|
||||||
if (variables != NULL) {
|
if (variables != NULL) {
|
||||||
while (arrlen(variables) > 0) {
|
while (arrlen(variables) > 0) {
|
||||||
arrdel(variables, 0);
|
arrdel(variables, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
arrfree(variables);
|
||||||
|
|
||||||
// Unwind unresolved array if needed.
|
// Unwind unresolved array if needed.
|
||||||
if (unresolved != NULL) {
|
if (unresolved != NULL) {
|
||||||
|
@ -764,3 +771,6 @@ int vecparser(char *programIn, VecByteCodeT *bytecode) {
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#pragma clang diagnostic pop
|
||||||
|
|
45
src/vector.c
45
src/vector.c
|
@ -21,6 +21,7 @@
|
||||||
|
|
||||||
|
|
||||||
#pragma clang diagnostic push
|
#pragma clang diagnostic push
|
||||||
|
//#pragma ide diagnostic ignored "EmptyDeclOrStmt"
|
||||||
#pragma ide diagnostic ignored "cppcoreguidelines-narrowing-conversions"
|
#pragma ide diagnostic ignored "cppcoreguidelines-narrowing-conversions"
|
||||||
#pragma ide diagnostic ignored "hicpp-multiway-paths-covered"
|
#pragma ide diagnostic ignored "hicpp-multiway-paths-covered"
|
||||||
|
|
||||||
|
@ -348,6 +349,8 @@ EVENT gboolean drawVectorImageMotionEvent(GtkWidget *widget, GdkEventMotion *eve
|
||||||
int temp;
|
int temp;
|
||||||
char buffer[8];
|
char buffer[8];
|
||||||
|
|
||||||
|
(void)widget;
|
||||||
|
|
||||||
// If we're in a drawing action, bail out of this.
|
// If we're in a drawing action, bail out of this.
|
||||||
if (self->clickState != CLICK_NONE) return FALSE;
|
if (self->clickState != CLICK_NONE) return FALSE;
|
||||||
|
|
||||||
|
@ -416,7 +419,7 @@ EVENT void editorVectorNotify(GtkWidget *sciWidget, gint ctrlID, struct SCNotifi
|
||||||
}
|
}
|
||||||
|
|
||||||
// Release bytecode.
|
// Release bytecode.
|
||||||
if (byteCode.bytes != NULL) DEL(byteCode.bytes);
|
DEL(byteCode.bytes);
|
||||||
// Mark text dirty. SCN_SAVEPOINTLEFT isn't being reliable.
|
// Mark text dirty. SCN_SAVEPOINTLEFT isn't being reliable.
|
||||||
setDirty(self, TRUE);
|
setDirty(self, TRUE);
|
||||||
}
|
}
|
||||||
|
@ -552,7 +555,7 @@ static void loadTraceImage(VectorDataT *self, char *filename) {
|
||||||
cairo_surface_t *temp;
|
cairo_surface_t *temp;
|
||||||
cairo_t *cr;
|
cairo_t *cr;
|
||||||
|
|
||||||
if (self->tracename != NULL) DEL(self->tracename);
|
DEL(self->tracename);
|
||||||
self->tracename = strdup(filename);
|
self->tracename = strdup(filename);
|
||||||
gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(self->fileVectorTraceImage), 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));
|
gtk_file_chooser_unselect_all(GTK_FILE_CHOOSER(self->fileVectorTraceImage));
|
||||||
}
|
}
|
||||||
// Clear any filename.
|
// Clear any filename.
|
||||||
if (self->filename != NULL) DEL(self->filename);
|
DEL(self->filename);
|
||||||
// Refresh widget.
|
// Refresh widget.
|
||||||
gtk_widget_queue_draw(self->drawVectorImage);
|
gtk_widget_queue_draw(self->drawVectorImage);
|
||||||
// Mark clean.
|
// Mark clean.
|
||||||
|
@ -711,7 +714,7 @@ EVENT void menuVectorFileOpen(GtkWidget *object, gpointer userData) {
|
||||||
setDirty(self, FALSE);
|
setDirty(self, FALSE);
|
||||||
menuVectorFileNew(object, userData);
|
menuVectorFileNew(object, userData);
|
||||||
|
|
||||||
if (self->filename != NULL) DEL(self->filename);
|
DEL(self->filename);
|
||||||
self->filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
|
self->filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
|
||||||
|
|
||||||
in = fopen(self->filename, "rt");
|
in = fopen(self->filename, "rt");
|
||||||
|
@ -740,7 +743,7 @@ EVENT void menuVectorFileOpen(GtkWidget *object, gpointer userData) {
|
||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
fclose(in);
|
fclose(in);
|
||||||
if (line != NULL) DEL(line);
|
DEL(line);
|
||||||
SSM(SCI_ADDTEXT, strlen(self->buffer), (sptr_t)self->buffer);
|
SSM(SCI_ADDTEXT, strlen(self->buffer), (sptr_t)self->buffer);
|
||||||
//SSM(SCI_CONVERTEOLS, SC_EOL_CR, 0);
|
//SSM(SCI_CONVERTEOLS, SC_EOL_CR, 0);
|
||||||
status(self, "Image loaded.");
|
status(self, "Image loaded.");
|
||||||
|
@ -787,17 +790,15 @@ EVENT void menuVectorFileSave(GtkWidget *object, gpointer userData) {
|
||||||
fprintf(out, "------------------------------------------------------------------------------\n");
|
fprintf(out, "------------------------------------------------------------------------------\n");
|
||||||
fprintf(out, "%s\n", code);
|
fprintf(out, "%s\n", code);
|
||||||
fclose(out);
|
fclose(out);
|
||||||
// Release code.
|
|
||||||
DEL(code);
|
|
||||||
status(self, "Saved.");
|
status(self, "Saved.");
|
||||||
// We're clean now.
|
// We're clean now.
|
||||||
setDirty(self, FALSE);
|
setDirty(self, FALSE);
|
||||||
} else {
|
} else {
|
||||||
// Release code.
|
|
||||||
DEL(code);
|
|
||||||
|
|
||||||
//***TODO*** Something bad happened.
|
//***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);
|
gtk_file_chooser_set_do_overwrite_confirmation(GTK_FILE_CHOOSER(dialog), TRUE);
|
||||||
|
|
||||||
if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) {
|
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));
|
self->filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
|
||||||
menuVectorFileSave(object, self);
|
menuVectorFileSave(object, self);
|
||||||
}
|
}
|
||||||
|
@ -855,9 +856,7 @@ static void renderBytecode(VecByteCodeT *bytecode, VectorDataT *self) {
|
||||||
debug("-----------------------------------\n");
|
debug("-----------------------------------\n");
|
||||||
|
|
||||||
// Clear collected points array.
|
// Clear collected points array.
|
||||||
while (arrlen(self->pointList) > 0) {
|
arrfree(self->pointList);
|
||||||
arrdel(self->pointList, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Reset JoeyLib draw state.
|
// Reset JoeyLib draw state.
|
||||||
jlPaletteDefault(self->jlc);
|
jlPaletteDefault(self->jlc);
|
||||||
|
@ -1144,14 +1143,10 @@ static void renderBytecode(VecByteCodeT *bytecode, VectorDataT *self) {
|
||||||
debug("Points: %ld\n", arrlen(self->pointList));
|
debug("Points: %ld\n", arrlen(self->pointList));
|
||||||
|
|
||||||
// Clear variables.
|
// Clear variables.
|
||||||
while (arrlen(self->variables) > 0) {
|
arrfree(self->variables);
|
||||||
arrdel(self->variables, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Clear stack.
|
// Clear stack.
|
||||||
while (arrlen(stack) > 0) {
|
arrfree(stack);
|
||||||
arrdel(stack, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Refresh widget.
|
// Refresh widget.
|
||||||
gtk_widget_queue_draw(self->drawVectorImage);
|
gtk_widget_queue_draw(self->drawVectorImage);
|
||||||
|
@ -1554,11 +1549,11 @@ static void winVectorDelete(gpointer userData) {
|
||||||
cairo_surface_destroy(self->surface);
|
cairo_surface_destroy(self->surface);
|
||||||
cairo_surface_destroy(self->scaled);
|
cairo_surface_destroy(self->scaled);
|
||||||
cairo_surface_destroy(self->target);
|
cairo_surface_destroy(self->target);
|
||||||
if (self->trace != NULL) cairo_surface_destroy(self->trace);
|
if (self->trace != NULL) cairo_surface_destroy(self->trace);
|
||||||
if (self->filename != NULL) DEL(self->filename);
|
DEL(self->filename);
|
||||||
if (self->title != NULL) DEL(self->title);
|
DEL(self->title);
|
||||||
if (self->tracename != NULL) DEL(self->tracename);
|
DEL(self->tracename);
|
||||||
if (self->buffer != NULL) DEL(self->buffer);
|
DEL(self->buffer);
|
||||||
|
|
||||||
DEL(self);
|
DEL(self);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue