mirror of
				https://github.com/vcmi/vcmi.git
				synced 2025-10-31 00:07:39 +02:00 
			
		
		
		
	CMake transitive compile dependency
Moving to more target focusing code that provides better transitive scope
This commit is contained in:
		
				
					committed by
					
						 ArseniyShestakov
						ArseniyShestakov
					
				
			
			
				
	
			
			
			
						parent
						
							b00e935e4d
						
					
				
				
					commit
					a0d1808b62
				
			| @@ -1,7 +1,3 @@ | ||||
| include_directories(${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/include ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_HOME_DIRECTORY}/lib) | ||||
| include_directories(${SDL2_INCLUDE_DIR} ${SDL2_IMAGE_INCLUDE_DIR} ${SDL2_MIXER_INCLUDE_DIR} ${SDL2_TTF_INCLUDE_DIR}) | ||||
| include_directories(${Boost_INCLUDE_DIRS} ${ZLIB_INCLUDE_DIR} ${FFMPEG_INCLUDE_DIRS}) | ||||
|  | ||||
| set(client_SRCS | ||||
| 		StdInc.cpp | ||||
| 		../CCallback.cpp | ||||
| @@ -181,6 +177,16 @@ target_link_libraries(vcmiclient vcmi ${Boost_LIBRARIES} | ||||
| 	${SDL2_LIBRARY} ${SDL2_IMAGE_LIBRARY} ${SDL2_MIXER_LIBRARY} ${SDL2_TTF_LIBRARY} | ||||
| 	${ZLIB_LIBRARIES} ${FFMPEG_LIBRARIES} ${FFMPEG_EXTRA_LINKING_OPTIONS} ${SYSTEM_LIBS} | ||||
| ) | ||||
|  | ||||
| target_include_directories(vcmi | ||||
| 	PUBLIC	${CMAKE_CURRENT_SOURCE_DIR} | ||||
| 	PUBLIC	${SDL2_INCLUDE_DIR} | ||||
| 	PRIVATE ${SDL2_TTF_INCLUDE_DIR} | ||||
| 	PRIVATE ${SDL2_MIXER_INCLUDE_DIR} | ||||
| 	PRIVATE ${SDL2_IMAGE_INCLUDE_DIR} | ||||
| 	PRIVATE ${FFMPEG_INCLUDE_DIRS} | ||||
| ) | ||||
|  | ||||
| vcmi_set_output_dir(vcmiclient "") | ||||
|  | ||||
| set_target_properties(vcmiclient PROPERTIES ${PCH_PROPERTIES}) | ||||
|   | ||||
| @@ -1,8 +1,3 @@ | ||||
| # Detailed information about CMake compatibility available on Qt website | ||||
| # https://doc.qt.io/qt-5/cmake-manual.html | ||||
| include_directories(${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/include ${CMAKE_CURRENT_SOURCE_DIR}) | ||||
| include_directories(${ZLIB_INCLUDE_DIR} ${Boost_INCLUDE_DIRS} ${Qt5Widgets_INCLUDE_DIRS} ${Qt5Network_INCLUDE_DIRS}) | ||||
|  | ||||
| set(launcher_modmanager_SRCS | ||||
| 		modManager/cdownloadmanager_moc.cpp | ||||
| 		modManager/cmodlist.cpp | ||||
| @@ -104,7 +99,11 @@ if(APPLE) | ||||
| endif() | ||||
|  | ||||
| target_link_libraries(vcmilauncher vcmi Qt5::Widgets Qt5::Network) | ||||
|  | ||||
| target_include_directories(vcmilauncher | ||||
| 	PUBLIC	${CMAKE_CURRENT_SOURCE_DIR} | ||||
| 	PRIVATE	${Qt5Widgets_INCLUDE_DIRS} | ||||
| 	PRIVATE	${Qt5Network_INCLUDE_DIRS} | ||||
| ) | ||||
| vcmi_set_output_dir(vcmilauncher "") | ||||
|  | ||||
| # temporary(?) disabled - generation of PCH takes too much time since cotire is trying to collect all Qt headers | ||||
|   | ||||
| @@ -1,6 +1,3 @@ | ||||
| include_directories(${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/include ${CMAKE_CURRENT_SOURCE_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/lib) | ||||
| include_directories(${Boost_INCLUDE_DIRS} ${SDL2_INCLUDE_DIR} ${ZLIB_INCLUDE_DIR}) | ||||
|  | ||||
| set(lib_SRCS | ||||
| 		StdInc.cpp | ||||
| 		${CMAKE_BINARY_DIR}/Version.cpp | ||||
| @@ -358,6 +355,15 @@ add_library(vcmi SHARED ${lib_SRCS} ${lib_HEADERS}) | ||||
| set_target_properties(vcmi PROPERTIES COMPILE_DEFINITIONS "VCMI_DLL=1") | ||||
| target_link_libraries(vcmi ${MINIZIP_LIBRARIES} ${Boost_LIBRARIES} ${SDL2_LIBRARY} ${ZLIB_LIBRARIES} ${SYSTEM_LIBS}) | ||||
|  | ||||
| target_include_directories(vcmi | ||||
| 	PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} | ||||
| 	PUBLIC ${CMAKE_HOME_DIRECTORY} | ||||
| 	PUBLIC ${CMAKE_HOME_DIRECTORY}/include | ||||
| 	PUBLIC ${Boost_INCLUDE_DIRS} | ||||
| 	PUBLIC ${ZLIB_INCLUDE_DIR} | ||||
| 	PRIVATE ${SDL2_INCLUDE_DIR} | ||||
| ) | ||||
|  | ||||
| if(WIN32) | ||||
| 	set_target_properties(vcmi | ||||
| 		PROPERTIES | ||||
|   | ||||
| @@ -1,6 +1,3 @@ | ||||
| include_directories(${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/include ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_HOME_DIRECTORY}/lib) | ||||
| include_directories(${Boost_INCLUDE_DIRS} ${ZLIB_INCLUDE_DIR}) | ||||
|  | ||||
| set(server_SRCS | ||||
| 		StdInc.cpp | ||||
|  | ||||
| @@ -29,6 +26,10 @@ add_executable(vcmiserver ${server_SRCS} ${server_HEADERS}) | ||||
|  | ||||
| target_link_libraries(vcmiserver vcmi ${Boost_LIBRARIES} ${SYSTEM_LIBS}) | ||||
|  | ||||
| target_include_directories(vcmiserver | ||||
| 	PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} | ||||
| ) | ||||
|  | ||||
| if(WIN32) | ||||
| 	set_target_properties(vcmiserver | ||||
| 		PROPERTIES | ||||
|   | ||||
| @@ -9,9 +9,6 @@ if(EXISTS ${googleTest_Dir}) | ||||
| else() | ||||
| 	message(FATAL_ERROR "No googletest src dir found!") | ||||
| endif() | ||||
| include_directories(${GTestSrc} ${GTestSrc}/include ${GMockSrc} ${GMockSrc}/include) | ||||
| include_directories(${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/include ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_HOME_DIRECTORY}/test) | ||||
| include_directories(${Boost_INCLUDE_DIRS} ${ZLIB_INCLUDE_DIR}) | ||||
|  | ||||
| set(test_SRCS | ||||
|  		StdInc.cpp | ||||
| @@ -114,6 +111,14 @@ add_subdirectory_with_folder("3rdparty" googletest EXCLUDE_FROM_ALL) | ||||
| add_executable(vcmitest ${test_SRCS} ${test_HEADERS} ${mock_HEADERS} ${GTestSrc}/src/gtest-all.cc ${GMockSrc}/src/gmock-all.cc) | ||||
| target_link_libraries(vcmitest vcmi ${RT_LIB} ${DL_LIB}) | ||||
|  | ||||
| target_include_directories( | ||||
| 		PUBLIC	${CMAKE_CURRENT_SOURCE_DIR} | ||||
| 		PRIVATE	${GTestSrc} | ||||
| 		PRIVATE	${GTestSrc}/include | ||||
| 		PRIVATE	${GMockSrc} | ||||
| 		PRIVATE	${GMockSrc}/include | ||||
| ) | ||||
|  | ||||
| if(FALSE AND NOT ${CMAKE_VERSION} VERSION_LESS "3.10.0") | ||||
| 	# Running tests one by one using ctest not recommended due to vcmi having | ||||
| 	# slow global initialization. | ||||
|   | ||||
		Reference in New Issue
	
	Block a user