Skip to content
This repository has been archived by the owner on Sep 1, 2022. It is now read-only.

Public API calls should be located inside of Modules/API #15

Closed
18 tasks done
bruxisma opened this issue Aug 19, 2019 · 5 comments
Closed
18 tasks done

Public API calls should be located inside of Modules/API #15

bruxisma opened this issue Aug 19, 2019 · 5 comments
Assignees
Labels
critical 🚨 All hands on deck, this is a show stopper! ✨ enhancement ✨ New feature or request modules 🔮 Public API

Comments

@bruxisma
Copy link
Member

bruxisma commented Aug 19, 2019

To allow users to understand what the "core" API calls for IXM are, each one should be located directly within the Modules/API directory. Currently the following commands do not meet this requirement:

  • dict
  • inspect
  • invoke
  • var (This name is unhelpful, and should be replaced)
  • upvar
  • genexp
  • glob (Perhaps this function should be removed altogether)
  • import
  • module
  • blueprint
  • log
  • parse
  • print
  • success
  • failure
  • global
  • internal
  • cache
@bruxisma bruxisma added ✨ enhancement ✨ New feature or request modules 🔮 Public API critical 🚨 All hands on deck, this is a show stopper! labels Aug 19, 2019
@bruxisma bruxisma added this to the IXM Alpha Release milestone Aug 19, 2019
@bruxisma bruxisma self-assigned this Aug 19, 2019
@bruxisma
Copy link
Member Author

upvar has been temporarily removed.

@bruxisma
Copy link
Member Author

To expand further on the removal for upvar, it would in practice lead to silent bugs. In practice, it is better to simply call set() with the PARENT_SCOPE signature. If we're lucky, CMake might provide a better PARENT_SCOPE alternative, but we wouldn't be able to use it anyhow due to our minimum version requirement.

bruxisma added a commit that referenced this issue Aug 26, 2019
This was done to permit silencing ALL output.

:recycle: check() will now use dynamic invocation for its subcommands.
:recycle: QUIET option for fetch() has been re-enabled
:recycle: ixm_log_out will not use the ixm::log::color property
:truck: Currently moving log() to the API submodule.
  This is required to complete #15
🐛 Fix missing ixm::check::include global property
🐛 ixm_color_initialize will now use CMAKE_HOST_WIN32 instead of
WIN32. This should fix a few cross compilation outputs.
🐛 Fix messages having extra ';' in them inside of log() calls
@bruxisma
Copy link
Member Author

internal has been removed.

bruxisma added a commit that referenced this issue Aug 29, 2019
🔥 Removed the `global()` command (#15)

:pencil2: Add notes for the dict() serialization format.
@bruxisma
Copy link
Member Author

cache has been deleted.
var has been renamed to assign

@bruxisma bruxisma changed the title Core API calls should be located inside of Modules/API Public API calls should be located inside of Modules/API Aug 30, 2019
bruxisma added a commit that referenced this issue Sep 3, 2019
✨ Add Introspection API (Closes #19)
  Commands provided are "locals", "macros", "commands", and "functions".
  Each can be passed `REMOVE` or `KEEP` and this is used to filter the
  output from the commands.

:sparkles: inspect is now a macro
  This fixes the issue where ARGN can't be reached from the calling
  scope.

:sparkles: Add target(SOURCES) command
  This replaces the previous target_sources override. This will reduce
  the chances of name collision with builtin CMake commands.

:sparkles: Add `void` macro
  This unsets all arguments passed to it in the current calling scope

:construction: Add FindBison and FindFlex files
  This will help with #28. They are also meant to replace the fairly old
  and unmaintained FindBISON and FindFLEX CMake packages.

:truck: Move `dict()` command to API::Core (#15)
:truck: Move part of `log()` command to API::Core (#15)
:truck: Rename API::Author to API::Core (#15)

:fire: `dict(INSERT STRING)` is now `dict(INSERT CONCAT)`

:construction: Add target(COMPILE) skeleton (#18)
:construction: Add target(INTERFACE) skeleton (#18)
:construction: Add target(LIBRARY) skeleton (#18)
:construction: Add target(UNITY) skeleton (#18)
:construction: Add target(PLUGIN) skeleton (#18)
:construction: Add target(TEST) skeleton (#18)
:construction: Add target(PROGRAM) skeleton(#18)

:pencil: Removed Patreon link (as this is planned to be shutdown at some
point)
@bruxisma
Copy link
Member Author

bruxisma commented Oct 1, 2019

genexp has been removed in an upcoming commit. Use string(CONCAT) instead.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
critical 🚨 All hands on deck, this is a show stopper! ✨ enhancement ✨ New feature or request modules 🔮 Public API
Projects
None yet
Development

No branches or pull requests

1 participant