diff options
| author | Clement Sibille <clements+github@lisible.xyz> | 2024-06-05 17:52:00 +0900 | 
|---|---|---|
| committer | Clement Sibille <clements+github@lisible.xyz> | 2024-06-05 17:52:00 +0900 | 
| commit | ff2cfc706efd88c2e30fdb4c27ddad3263227367 (patch) | |
| tree | 258df57b8763d4b1fe9cde1586f9f9542f58286b | |
| parent | 221770922f959a5d5ae54e196b98bb13ab250842 (diff) | |
Have specific assertions for playdate platform
| -rw-r--r-- | cross/playdate.txt | 4 | ||||
| -rw-r--r-- | meson.build | 19 | ||||
| -rw-r--r-- | meson.options | 1 | ||||
| -rw-r--r-- | src/lisiblestd/assert.h | 18 | ||||
| -rw-r--r-- | src/lisiblestd/types.h | 1 | 
5 files changed, 40 insertions, 3 deletions
diff --git a/cross/playdate.txt b/cross/playdate.txt index c54b4ba..2b27530 100644 --- a/cross/playdate.txt +++ b/cross/playdate.txt @@ -9,3 +9,7 @@ system = 'none'  cpu_family = 'arm'  cpu = 'cortex-m7'  endian = 'little' + +[properties] +is_playdate_build = true + diff --git a/meson.build b/meson.build index 8b3009a..0202d9e 100644 --- a/meson.build +++ b/meson.build @@ -1,16 +1,31 @@  project('lisiblestd', 'c', version: '0.3.0', default_options: ['c_std=c18', 'warning_level=3', 'default_library=static']) +is_playdate_build = meson.get_external_property('is_playdate_build', false) + +lisiblestd_c_args = [] +lisiblestd_deps = [] +if is_playdate_build +playdate_sdk_path = get_option('playdate_sdk_path') +playdate_sdk_incdir = playdate_sdk_path / 'C_API' +playdate_sdk_dep = declare_dependency(include_directories: playdate_sdk_incdir) +lisiblestd_c_args += '-DLSTD_PLATFORM_PLAYDATE' +lisiblestd_c_args += '-DTARGET_EXTENSION' +lisiblestd_deps += playdate_sdk_dep +endif +  lisiblestd_incdir = include_directories('src/') -lisiblestd_lib = library('lisiblestd',  +lisiblestd_lib = static_library('lisiblestd',     'src/lisiblestd/log.c',     'src/lisiblestd/memory.c',     'src/lisiblestd/string.c',    'src/lisiblestd/bytes.c',    'src/lisiblestd/vec.c',    'src/lisiblestd/hash.c', +  c_args: lisiblestd_c_args, +  dependencies: lisiblestd_deps  ) -lisiblestd_dep = declare_dependency(include_directories: lisiblestd_incdir, link_with: [lisiblestd_lib]) +lisiblestd_dep = declare_dependency(include_directories: lisiblestd_incdir, link_with: [lisiblestd_lib], dependencies: lisiblestd_deps)  if not meson.is_cross_build() diff --git a/meson.options b/meson.options new file mode 100644 index 0000000..fc170c9 --- /dev/null +++ b/meson.options @@ -0,0 +1 @@ +option('playdate_sdk_path', type: 'string', value: '/opt/playdate-sdk') diff --git a/src/lisiblestd/assert.h b/src/lisiblestd/assert.h index 9bd998b..15026f9 100644 --- a/src/lisiblestd/assert.h +++ b/src/lisiblestd/assert.h @@ -5,6 +5,23 @@  extern void exit(int); + + +#ifdef LSTD_PLATFORM_PLAYDATE +#include <pd_api.h> +extern PlaydateAPI* pd; +#define LSTD_ASSERT(expr)                                                      \ +  do {                                                                         \ +    if (!(expr)) {                                                             \ +      pd->system->error("Assertion failed:\n\t%s", #expr);                     \ +    }                                                                          \ +  } while (0) + +#define LSTD_UNIMPLEMENTED()                                                   \ +  do {                                                                         \ +      pd->system->error("Unimpemented code reached");                          \ +  } while (0) +#else  #define LSTD_ASSERT(expr)                                                      \    do {                                                                         \      if (!(expr)) {                                                             \ @@ -18,5 +35,6 @@ extern void exit(int);      LOG_ERROR("Unimplemented code reached");                                   \      exit(1);                                                                   \    } while (0) +#endif  #endif // LSTD_ASSERT_H diff --git a/src/lisiblestd/types.h b/src/lisiblestd/types.h index e16728a..dafb9e9 100644 --- a/src/lisiblestd/types.h +++ b/src/lisiblestd/types.h @@ -3,7 +3,6 @@  #include <stddef.h>  #include <stdint.h> -#include <sys/types.h>  typedef uint8_t u8;  typedef uint16_t u16;  | 
