Introducing types to allow flowing compilation settings to the application

Do all of the other projects have this?