Define code strings in shaders before compilation

Hello!
Is it possible to use different fucntions in unity shaders depending on some preprocessor macros? What I want to do is like that:

    #if defined (_LIGHTMODE_UNLIT)
        #define SURF_FUNC surfUnlit
        #define LIGHTING_FUNC Unlit
    #else
        #define SURF_FUNC surfLit
        #define LIGHTING_FUNC Standard
    #endif

    #pragma surface SURF_FUNC LIGHTING_FUNC vertex:vert

Is this possible? By defining a keyword I can choose which function to use? (the code above doesn’t work, it’s for example of what I want to achieve)
Or should I do keyword definitions inside the functions themselves? (which isn’t ideal, since for lit variant I just wanted to use unity default lighting)

Hi!
This is not possible.
#pragma directives are not macro-expanded.
You can use keywords inside those functions, though.

Thanks for the response!