@@ -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 )
0 commit comments