Skip to content

Commit b7cd284

Browse files
WIP
1 parent a109a2d commit b7cd284

18 files changed

Lines changed: 1183 additions & 416 deletions

.github/workflows/build.yml

Lines changed: 22 additions & 342 deletions
Large diffs are not rendered by default.

build/backend_linux.py

Lines changed: 49 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,8 @@ def generate_build(name, user_options = None):
184184
helper.add_line('echo LOCKING > "' + settings.output_directory + '/' + lock_file + '"')
185185
helper.add_spacing()
186186

187+
helper.add_line('PL_BUILD_STATUS=0')
188+
187189
if hot_reload:
188190
helper.add_comment('check if this is a reload')
189191
helper.add_line('PL_HOT_RELOAD_STATUS=0')
@@ -295,10 +297,21 @@ def generate_build(name, user_options = None):
295297
for source in settings.source_files:
296298
source_as_path = PurePath(source)
297299
helper.add_line('gcc -c $PL_INCLUDE_DIRECTORIES $PL_DEFINES $PL_COMPILER_FLAGS ' + source + ' -o "./' + settings.output_directory + '/' + source_as_path.stem + '.o"')
298-
helper.add_spacing()
299-
helper.add_comment('combine object files into a static lib')
300-
helper.add_line('ar rcs ./' + settings.output_directory + '/' + settings.output_binary + '.a ./' + settings.output_directory + '/*.o')
301-
helper.add_line('rm ./' + settings.output_directory + '/*.o')
300+
helper.add_spacing()
301+
302+
# check build status
303+
helper.add_comment("check build status")
304+
helper.add_line("if [ $? -ne 0 ]")
305+
helper.add_line("then")
306+
helper.add_line(" PL_RESULT=${BOLD}${RED}Failed.${NC}")
307+
helper.add_line(" PL_BUILD_STATUS=1")
308+
helper.print_line("${CYAN}Results: ${NC} ${PL_RESULT}")
309+
helper.print_line("${CYAN}~~~~~~~~~~~~~~~~~~~~~~${NC}")
310+
helper.add_line('popd >/dev/null')
311+
helper.add_line("exit 1")
312+
helper.add_line("fi")
313+
helper.add_spacing()
314+
302315
helper.add_spacing()
303316

304317
elif settings.target_type == pl.TargetType.DYNAMIC_LIBRARY:
@@ -316,6 +329,18 @@ def generate_build(name, user_options = None):
316329
helper.add_line('gcc -shared $PL_SOURCES $PL_INCLUDE_DIRECTORIES $PL_DEFINES $PL_COMPILER_FLAGS $PL_INCLUDE_DIRECTORIES $PL_LINK_DIRECTORIES $PL_STATIC_LINK_LIBRARIES $PL_DYNAMIC_LINK_LIBRARIES $PL_LINKER_FLAGS -o "./' + settings.output_directory + '/' + settings.output_binary + settings.output_binary_extension +'"')
317330
helper.add_spacing()
318331

332+
# check build status
333+
helper.add_comment("check build status")
334+
helper.add_line("if [ $? -ne 0 ]")
335+
helper.add_line("then")
336+
helper.add_line(" PL_RESULT=${BOLD}${RED}Failed.${NC}")
337+
helper.add_line(" PL_BUILD_STATUS=1")
338+
helper.print_line("${CYAN}Results: ${NC} ${PL_RESULT}")
339+
helper.print_line("${CYAN}~~~~~~~~~~~~~~~~~~~~~~${NC}")
340+
helper.add_line('popd >/dev/null')
341+
helper.add_line("exit 1")
342+
helper.add_line("fi")
343+
319344
elif settings.target_type == pl.TargetType.EXECUTABLE:
320345
helper.add_raw('PL_SOURCES="')
321346
for source in settings.source_files:
@@ -331,12 +356,25 @@ def generate_build(name, user_options = None):
331356
helper.add_line('gcc $PL_SOURCES $PL_INCLUDE_DIRECTORIES $PL_DEFINES $PL_COMPILER_FLAGS $PL_INCLUDE_DIRECTORIES $PL_LINK_DIRECTORIES $PL_STATIC_LINK_LIBRARIES $PL_DYNAMIC_LINK_LIBRARIES $PL_LINKER_FLAGS -o "./' + settings.output_directory + '/' + settings.output_binary + settings.output_binary_extension +'"')
332357
helper.add_spacing()
333358

334-
# check build status
335-
helper.add_comment("check build status")
336-
helper.add_line("if [ $? -ne 0 ]")
337-
helper.add_line("then")
338-
helper.add_line(" PL_RESULT=${BOLD}${RED}Failed.${NC}")
339-
helper.add_line("fi")
359+
# check build status
360+
helper.add_comment("check build status")
361+
helper.add_line("if [ $? -ne 0 ]")
362+
helper.add_line("then")
363+
helper.add_line(" PL_RESULT=${BOLD}${RED}Failed.${NC}")
364+
helper.add_line(" PL_BUILD_STATUS=1")
365+
helper.print_line("${CYAN}Results: ${NC} ${PL_RESULT}")
366+
helper.print_line("${CYAN}~~~~~~~~~~~~~~~~~~~~~~${NC}")
367+
helper.add_line('popd >/dev/null')
368+
helper.add_line("exit 1")
369+
helper.add_spacing()
370+
helper.add_line("fi")
371+
372+
if settings.target_type == pl.TargetType.STATIC_LIBRARY:
373+
helper.add_spacing()
374+
helper.add_comment('combine object files into a static lib')
375+
helper.add_line('ar rcs ./' + settings.output_directory + '/' + settings.output_binary + '.a ./' + settings.output_directory + '/*.o')
376+
helper.add_line('rm ./' + settings.output_directory + '/*.o')
377+
helper.add_spacing()
340378
helper.add_spacing()
341379

342380
# print results
@@ -375,5 +413,6 @@ def generate_build(name, user_options = None):
375413
# helper.add_spacing()
376414
helper.add_comment('return CWD to previous CWD')
377415
helper.add_line('popd >/dev/null')
416+
helper.add_line('exit ${PL_BUILD_STATUS}')
378417

379418
helper.write_file(name)

build/backend_macos.py

Lines changed: 49 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,8 @@ def generate_build(name, user_options = None):
186186
helper.add_line('echo LOCKING > "' + settings.output_directory + '/' + lock_file + '"')
187187
helper.add_spacing()
188188

189+
helper.add_line('PL_BUILD_STATUS=0')
190+
189191
if hot_reload:
190192
helper.add_comment('check if this is a reload')
191193
helper.add_line('PL_HOT_RELOAD_STATUS=0')
@@ -317,10 +319,20 @@ def generate_build(name, user_options = None):
317319
for source in settings.source_files:
318320
source_as_path = PurePath(source)
319321
helper.add_line( 'clang -c $PL_INCLUDE_DIRECTORIES $PL_DEFINES $PL_COMPILER_FLAGS ' + source + ' -o "./' + settings.output_directory + '/' + source_as_path.stem + '.o"')
320-
helper.add_spacing()
321-
helper.add_comment('combine object files into a static lib')
322-
helper.add_line('ar rcs ./' + settings.output_directory + '/lib' + settings.output_binary + '.a ./' + settings.output_directory + '/*.o')
323-
helper.add_line('rm ./' + settings.output_directory + '/*.o')
322+
helper.add_spacing()
323+
324+
# check build status
325+
helper.add_comment("check build status")
326+
helper.add_line("if [ $? -ne 0 ]")
327+
helper.add_line("then")
328+
helper.add_line(" PL_RESULT=${BOLD}${RED}Failed.${NC}")
329+
helper.add_line(" PL_BUILD_STATUS=1")
330+
helper.print_line("${CYAN}Results: ${NC} ${PL_RESULT}")
331+
helper.print_line("${CYAN}~~~~~~~~~~~~~~~~~~~~~~${NC}")
332+
helper.add_line('popd >/dev/null')
333+
helper.add_line("exit 1")
334+
helper.add_line("fi")
335+
324336
helper.add_spacing()
325337

326338
elif settings.target_type == pl.TargetType.DYNAMIC_LIBRARY:
@@ -332,6 +344,18 @@ def generate_build(name, user_options = None):
332344
helper.add_line('clang -shared $PL_SOURCES $PL_INCLUDE_DIRECTORIES $PL_DEFINES $PL_COMPILER_FLAGS $PL_INCLUDE_DIRECTORIES $PL_LINK_DIRECTORIES $PL_STATIC_LINK_LIBRARIES $PL_DYNAMIC_LINK_LIBRARIES $PL_LINK_FRAMEWORKS $PL_LINKER_FLAGS -o "./' + settings.output_directory + '/' + settings.output_binary + settings.output_binary_extension +'"')
333345
helper.add_spacing()
334346

347+
# check build status
348+
helper.add_comment("check build status")
349+
helper.add_line("if [ $? -ne 0 ]")
350+
helper.add_line("then")
351+
helper.add_line(" PL_RESULT=${BOLD}${RED}Failed.${NC}")
352+
helper.add_line(" PL_BUILD_STATUS=1")
353+
helper.print_line("${CYAN}Results: ${NC} ${PL_RESULT}")
354+
helper.print_line("${CYAN}~~~~~~~~~~~~~~~~~~~~~~${NC}")
355+
helper.add_line('popd >/dev/null')
356+
helper.add_line("exit 1")
357+
helper.add_line("fi")
358+
335359
elif settings.target_type == pl.TargetType.EXECUTABLE:
336360
helper.add_comment('run compiler (and linker)')
337361
helper.print_space()
@@ -341,12 +365,26 @@ def generate_build(name, user_options = None):
341365
helper.add_line('clang $PL_SOURCES $PL_INCLUDE_DIRECTORIES $PL_DEFINES $PL_COMPILER_FLAGS $PL_INCLUDE_DIRECTORIES $PL_LINK_DIRECTORIES $PL_STATIC_LINK_LIBRARIES $PL_DYNAMIC_LINK_LIBRARIES $PL_LINKER_FLAGS -o "./' + settings.output_directory + '/' + settings.output_binary + settings.output_binary_extension +'"')
342366
helper.add_spacing()
343367

344-
# check build status
345-
helper.add_comment("check build status")
346-
helper.add_line("if [ $? -ne 0 ]")
347-
helper.add_line("then")
348-
helper.add_line(" PL_RESULT=${BOLD}${RED}Failed.${NC}")
349-
helper.add_line("fi")
368+
369+
# check build status
370+
helper.add_comment("check build status")
371+
helper.add_line("if [ $? -ne 0 ]")
372+
helper.add_line("then")
373+
helper.add_line(" PL_RESULT=${BOLD}${RED}Failed.${NC}")
374+
helper.add_line(" PL_BUILD_STATUS=1")
375+
helper.print_line("${CYAN}Results: ${NC} ${PL_RESULT}")
376+
helper.print_line("${CYAN}~~~~~~~~~~~~~~~~~~~~~~${NC}")
377+
helper.add_line('popd >/dev/null')
378+
helper.add_line("exit 1")
379+
helper.add_spacing()
380+
helper.add_line("fi")
381+
382+
if settings.target_type == pl.TargetType.STATIC_LIBRARY:
383+
helper.add_spacing()
384+
helper.add_comment('combine object files into a static lib')
385+
helper.add_line('ar rcs ./' + settings.output_directory + '/' + settings.output_binary + '.a ./' + settings.output_directory + '/*.o')
386+
helper.add_line('rm ./' + settings.output_directory + '/*.o')
387+
helper.add_spacing()
350388
helper.add_spacing()
351389

352390
# print results
@@ -385,5 +423,6 @@ def generate_build(name, user_options = None):
385423
# helper.add_spacing()
386424
helper.add_comment('return CWD to previous CWD')
387425
helper.add_line('popd >/dev/null')
426+
helper.add_line('exit ${PL_BUILD_STATUS}')
388427

389428
helper.write_file(name)

build/backend_win32.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -462,4 +462,5 @@ def generate_build(name, user_options = None):
462462
# helper.add_spacing()
463463
helper.add_comment("return CWD to previous CWD")
464464
helper.add_line('@popd')
465+
helper.add_line('exit /b %PL_BUILD_STATUS%')
465466
helper.write_file(name)

build/core.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
# [SECTION] version
1515
#-----------------------------------------------------------------------------
1616

17-
__version__ = "1.3.0"
17+
__version__ = "1.4.0"
1818

1919
#-----------------------------------------------------------------------------
2020
# [SECTION] imports

build/deploy_setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
from codecs import open
33
import os
44

5-
wip_version = "1.3.0"
5+
wip_version = "1.4.0"
66

77
def version_number():
88
"""This function reads the version number which is populated by github actions"""

0 commit comments

Comments
 (0)