If (WIN32)
	exec_program (${CMAKE_CURRENT_SOURCE_DIR}/get-all.bat ${CMAKE_CURRENT_SOURCE_DIR}
		ARGS OFF
		OUTPUT_VARIABLE MODULES)

	exec_program (${CMAKE_CURRENT_SOURCE_DIR}/get-list.bat ${CMAKE_CURRENT_SOURCE_DIR}
		ARGS "y" ${MODULES}
		OUTPUT_VARIABLE STATIC_MODULES)

	exec_program (${CMAKE_CURRENT_SOURCE_DIR}/get-list.bat ${CMAKE_CURRENT_SOURCE_DIR}
		ARGS "m" ${MODULES}
		OUTPUT_VARIABLE DYNAMIC_MODULES)

	exec_program (${CMAKE_CURRENT_SOURCE_DIR}/get-list.bat ${CMAKE_CURRENT_SOURCE_DIR}
		ARGS "n" ${MODULES}
		OUTPUT_VARIABLE DISABLED_MODULES)

#	exec_program (${CMAKE_CURRENT_SOURCE_DIR}/check-deps.bat ${CMAKE_CURRENT_SOURCE_DIR}
#		ARGS ${STATIC_MODULES} - ${DYNAMIC_MODULES}
#		OUTPUT_VARIABLE DEPS_MESSAGE
#		RETURN_VALUE DEPS_STATUS
#	)

	if (DEPS_STATUS EQUAL 1)
		message (FATAL_ERROR ${DEPS_MESSAGE})
	endif (DEPS_STATUS EQUAL 1)

	exec_program (${CMAKE_CURRENT_SOURCE_DIR}/create-static-modules.bat ${CMAKE_CURRENT_BINARY_DIR}
		ARGS ${STATIC_MODULES}
		OUTPUT_VARIABLE NULL_VAR
	)

else (WIN32)

	exec_program (${CMAKE_CURRENT_SOURCE_DIR}/get-all.sh ${CMAKE_CURRENT_SOURCE_DIR}
		ARGS ${ENABLE_AUTODOWNLOAD}
		OUTPUT_VARIABLE MODULES)

	exec_program (${CMAKE_CURRENT_SOURCE_DIR}/get-list.sh ${CMAKE_CURRENT_SOURCE_DIR}
		ARGS "y" ${MODULES}
		OUTPUT_VARIABLE STATIC_MODULES)

	exec_program (${CMAKE_CURRENT_SOURCE_DIR}/get-list.sh ${CMAKE_CURRENT_SOURCE_DIR}
		ARGS "m" ${MODULES}
		OUTPUT_VARIABLE DYNAMIC_MODULES)

	exec_program (${CMAKE_CURRENT_SOURCE_DIR}/get-list.sh ${CMAKE_CURRENT_SOURCE_DIR}
		ARGS "n" ${MODULES}
		OUTPUT_VARIABLE DISABLED_MODULES)
#autodownload:
	if (ENABLE_AUTODOWNLOAD)
		foreach (MODULE ${STATIC_MODULES} ${DYNAMIC_MODULES})
			if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${MODULE}.web)
				if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${MODULE}/.autodownloaded OR NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${MODULE}/CMakeLists.txt)
					exec_program (${CMAKE_SOURCE_DIR}/varia/scripts/autodownload ${CMAKE_CURRENT_SOURCE_DIR}
						ARGS module ${MODULE}
						RETURN_VALUE DOWNLOAD_STATUS
					)
					if (DOWNLOAD_STATUS EQUAL 1)
						message (FATAL_ERROR ${MODULE} " download failed!")
					endif (DOWNLOAD_STATUS EQUAL 1)
					exec_program (${CMAKE_SOURCE_DIR}/varia/scripts/autopatch ${CMAKE_SOURCE_DIR}
						ARGS ${MODULE}
					)
				endif(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${MODULE}/.autodownloaded OR NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${MODULE}/CMakeLists.txt)
			endif(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${MODULE}.web)
		endforeach (MODULE)
	endif (ENABLE_AUTODOWNLOAD)

	exec_program (${CMAKE_CURRENT_SOURCE_DIR}/check-deps.sh ${CMAKE_CURRENT_SOURCE_DIR}
		ARGS ${AWK} ${STATIC_MODULES} - ${DYNAMIC_MODULES}
		OUTPUT_VARIABLE DEPS_MESSAGE
		RETURN_VALUE DEPS_STATUS
	)	

	if (DEPS_STATUS EQUAL 1)
		message (FATAL_ERROR ${DEPS_MESSAGE})
	endif (DEPS_STATUS EQUAL 1)

	exec_program (${CMAKE_CURRENT_SOURCE_DIR}/create-static-modules.sh ${CMAKE_CURRENT_BINARY_DIR}
		ARGS ${STATIC_MODULES}
		OUTPUT_VARIABLE NULL_VAR
	)

	find_program (AWK NAMES awk gawk)
endif (WIN32)

if (NOT STATIC_MODULES STREQUAL "\n")
	set (STATIC_MODULES ${STATIC_MODULES} CACHE INTERNAL "")

	foreach (MODULE ${STATIC_MODULES})
		message (STATUS "Static module: " ${MODULE})
		set (${MODULE} STATIC)
		link_directories (${MODULE})
		add_subdirectory (${MODULE})
	endforeach (MODULE)
endif (NOT STATIC_MODULES STREQUAL "\n")

if (NOT DYNAMIC_MODULES STREQUAL "\n")
	foreach (MODULE ${DYNAMIC_MODULES})
		message (STATUS "Dynamic module: " ${MODULE})
		if (WIN32)
			set (${MODULE} SHARED)
		else (WIN32)
			set (${MODULE} MODULE)
		endif (WIN32)
	# 	link_directories (${MODULE})
		add_subdirectory (${MODULE})
	endforeach (MODULE)
endif (NOT DYNAMIC_MODULES STREQUAL "\n")
