¡Qué bueno que quieras ser un compilador independiente! Desafortunadamente, los compiladores hitech y CCS para los PIC de gama baja usan muchas declaraciones de preprocesador específicas del compilador, rutinas de acceso de pin específicas del compilador y, en el caso de las rutinas específicas del compilador CCS para funciones centrales de acceso como SPI, I2C, ADC, etc.
No es posible escribir su código para que no sea específico del compilador sin una gran cantidad de preprocesador #define, #ifdef, #ifndef, etc. para obtener acceso a partes específicas de lo que ofrece cada compilador. Esto haría que tu código sea ilegible.
Lo mejor que puede aspirar es ser independiente del IDE y usar algo como eclipse, por lo que al menos está usando el mismo IDE. Esto resultará en la pérdida de los asistentes de CCS para configurar las funciones principales, pero le dará una mayor flexibilidad en el uso del mismo IDE.
Otra cosa a tener en cuenta es que tanto Hitech como CCS no tienen (al menos en el pasado) un verdadero enlazador de compilador de c y requieren que uses "#include myfile.c", lo cual personalmente desprecio ... pero esa es otra historia.
No he comentado sobre el compilador IAR ya que solo he usado CCS y hitech. Ambos funcionaron bien, pero nunca estuve muy contento después de migrar desde la plataforma Motorola (ahora escala libre) y usar el compilador de metroworks que era más avanzado en ese momento. El compilador IAR se ve bien pero nunca lo he usado.