I am developing a software and I would like to create a lite version of it; That is, some features of the paid version will be removed.
My first initial idea was to have a boolean somewhere indicating if the software is lite or pro and wrapping pro only code into conditions checking against this boolean. On second thought though, it seems like that would be very easy to reverse engineer and simply flick the boolean to enable all pro features.
So my second and current idea is to use the preprocessor to completely omit pro features from the lite version. I am reading however that the preprocessor should rarely be used in production.
Is my situation an exception or are there any better alternatives to achieve what I want?