better errors on no expression, break circular dependency in cmake