У меня очень большая база кода (читай: тысячи модулей), которая имеет общий код для множества проектов, которые все работают на разных операционных системах с разными компиляторами на С++. Разумеется, сохранение процесса сборки может быть довольно сложной задачей.
В кодовой базе есть несколько мест, где она могла бы существенно очистить код, если бы существовал способ заставить препроцессор игнорировать определенный #includes
, если файл не существовал в текущей папке. Кто-нибудь знает способ достичь этого?
В настоящее время мы используем #ifdef
вокруг #include
в общем файле со вторым файлом, специфичным для проекта, который # определяет, существует или нет #include
в проекте. Это работает, но это уродливо. Люди часто забывают правильно обновлять определения при добавлении или удалении файлов из проекта. Я рассматривал возможность написания инструмента предварительной сборки, чтобы поддерживать этот файл в актуальном состоянии, но если бы это был независимый от платформы способ сделать это с помощью препроцессора, я бы скорее сделал это именно так. Любые идеи?