How to structure project with multiple boards with different tasks

So like this?

; default src_filter
[env]
src_filter = +<*> -<.git/> -<.svn/> -<example/> -<examples/> -<test/> -<tests/>

[env:nanomaster]
platform = atmelavr
board = nanoatmega328new
framework = arduino
upload_protocol = arduino
upload_port = COM7
monitor_port = ${env:nanomaster.upload_port}
monitor_speed = 115200
src_filter = ${env.src_filter} -<mainSlave.cpp> ; exclude the slave cpp file

[env:nanoslave]
platform = atmelavr
board = nanoatmega328new
framework = arduino
upload_protocol = arduino
upload_port = COM8
monitor_port = ${env:nanoslave.upload_port}
monitor_speed = 115200
src_filter = ${env.src_filter} -<mainMaster.cpp> ; exclude the main cpp file