project(modules)

set(MODULES			module1 module2 module3)

set(module1_DIR		module1)
set(module1_SRCS	${module1_DIR}/module1.c)
set(module1_HDRS	${module1_DIR}/module1.h)

set(module2_DIR		module2)
set(module2_SRCS	${module2_DIR}/module2.c)
set(module2_HDRS	${module2_DIR}/module2.h)

set(module3_DIR		module3)
set(module3_SRCS	${module3_DIR}/module3.c)
set(module3_HDRS	${module3_DIR}/module3.h)

foreach (MODULE ${MODULES})
	file(GLOB SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${${MODULE}_DIR}/*.c)

	if (SRCS)
		source_group(${MODULE} FILES ${${MODULE}_SRCS} ${${MODULE}_HDRS})
	
		add_library(${MODULE} STATIC ${${MODULE}_SRCS} ${${MODULE}_HDRS})
		
		set(DEPS library)
		target_link_libraries(${MODULE} ${DEPS})
	else (SRCS)
		set(MODULE_LIB_NAME ${CMAKE_STATIC_LIBRARY_PREFIX}${MODULE}${CMAKE_STATIC_LIBRARY_SUFFIX})

		if (CMAKE_CONFIGURATION_TYPES)
			set(MODULE_LIB_PATH ${LIBRARY_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}/${MODULE_LIB_NAME})
		else (CMAKE_CONFIGURATION_TYPES)
			set(MODULE_LIB_PATH ${LIBRARY_OUTPUT_PATH}/${MODULE_LIB_NAME})
		endif (CMAKE_CONFIGURATION_TYPES)

  		add_custom_target(${MODULE} ALL)
		add_custom_command(TARGET ${MODULE}
						   COMMAND ${CMAKE_COMMAND} -E copy
								"/tmp/${MODULE_LIB_NAME}" ${MODULE_LIB_PATH}
						   COMMENT "Copying library ${MODULE_LIB_PATH}")
	endif (SRCS)

endforeach (MODULE ${MODULES})

