diff options
| -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; |
