mirror of
https://github.com/1dot13/source.git
synced 2026-09-09 14:46:05 +02:00
improve the comments on root CMakeLists.txt file
This commit is contained in:
committed by
majcosta
parent
319a0ca979
commit
7bbe68e6dd
+20
-7
@@ -25,10 +25,14 @@ target_link_libraries(bfVFS PRIVATE 7z)
|
|||||||
# ja2export utility
|
# ja2export utility
|
||||||
add_subdirectory("ext/export/src")
|
add_subdirectory("ext/export/src")
|
||||||
|
|
||||||
# internal libraries that are Good
|
# static libraries whose source files, header files or header files included
|
||||||
|
# by header files do not rely on Applications or Languages preprocessor definitions,
|
||||||
|
# and therefore only need to be compiled once. Good.
|
||||||
add_subdirectory(Lua)
|
add_subdirectory(Lua)
|
||||||
|
|
||||||
# internal libraries that live in Preprocessor Hell, because they are Bad
|
# static libraries whose source files, header files or header files included
|
||||||
|
# by header files rely on Application and Language preprocessor definitions, and
|
||||||
|
# therefore need to be compiled multiple times. Very Bad.
|
||||||
add_subdirectory(TileEngine)
|
add_subdirectory(TileEngine)
|
||||||
add_subdirectory(TacticalAI)
|
add_subdirectory(TacticalAI)
|
||||||
add_subdirectory(Utils)
|
add_subdirectory(Utils)
|
||||||
@@ -110,6 +114,7 @@ bfVFS
|
|||||||
"ws2_32.lib"
|
"ws2_32.lib"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# simple function to validate Languages and Application choices
|
||||||
include(cmake/ValidateOptions.cmake)
|
include(cmake/ValidateOptions.cmake)
|
||||||
|
|
||||||
set(ValidLanguages CHINESE DUTCH ENGLISH FRENCH GERMAN ITALIAN POLISH RUSSIAN)
|
set(ValidLanguages CHINESE DUTCH ENGLISH FRENCH GERMAN ITALIAN POLISH RUSSIAN)
|
||||||
@@ -118,6 +123,8 @@ ValidateOptions("${ValidLanguages}" "Languages" "${Languages}" "LangTargets")
|
|||||||
set(ValidApplications JA2 JA2MAPEDITOR JA2UB JA2UBMAPEDITOR)
|
set(ValidApplications JA2 JA2MAPEDITOR JA2UB JA2UBMAPEDITOR)
|
||||||
ValidateOptions("${ValidApplications}" "Applications" "${Applications}" "ApplicationTargets")
|
ValidateOptions("${ValidApplications}" "Applications" "${Applications}" "ApplicationTargets")
|
||||||
|
|
||||||
|
|
||||||
|
# preprocessor definitions for Debug build, per the legacy MSBuild
|
||||||
set(debugFlags $<IF:$<CONFIG:Debug>,JA2BETAVERSION;JA2TESTVERSION;DEBUG_ATTACKBUSY,>)
|
set(debugFlags $<IF:$<CONFIG:Debug>,JA2BETAVERSION;JA2TESTVERSION;DEBUG_ATTACKBUSY,>)
|
||||||
|
|
||||||
# Due to widespread preprocessor definition abuse in the codebase, practically
|
# Due to widespread preprocessor definition abuse in the codebase, practically
|
||||||
@@ -127,20 +134,26 @@ foreach(lang IN LISTS LangTargets)
|
|||||||
foreach(exe IN LISTS ApplicationTargets)
|
foreach(exe IN LISTS ApplicationTargets)
|
||||||
set(targPrefix ${exe}_${lang})
|
set(targPrefix ${exe}_${lang})
|
||||||
|
|
||||||
|
# executable for an application/language combination, e.g. JA2_ENGLISH.exe
|
||||||
add_executable(${targPrefix} WIN32)
|
add_executable(${targPrefix} WIN32)
|
||||||
target_sources(${targPrefix} PRIVATE ${Ja2Src})
|
target_sources(${targPrefix} PRIVATE ${Ja2Src})
|
||||||
|
|
||||||
|
# Good libraries have already been built, can be simply linked here
|
||||||
target_link_libraries(${targPrefix} PRIVATE ${Ja2_Libraries})
|
target_link_libraries(${targPrefix} PRIVATE ${Ja2_Libraries})
|
||||||
|
|
||||||
|
# for each app/lang combination, the Very Bad libraries need to be built,
|
||||||
|
# with the appropriate preprocessor definitions
|
||||||
foreach(lib IN LISTS Ja2_Libs)
|
foreach(lib IN LISTS Ja2_Libs)
|
||||||
|
# syntactic sugar to hopefully make this more readable
|
||||||
set(tgt ${targPrefix}_${lib})
|
set(tgt ${targPrefix}_${lib})
|
||||||
|
|
||||||
add_library(${tgt})
|
|
||||||
target_sources(${tgt} PRIVATE ${${lib}Src})
|
|
||||||
|
|
||||||
set(isEditor $<STREQUAL:${exe},JA2MAPEDITOR>)
|
set(isEditor $<STREQUAL:${exe},JA2MAPEDITOR>)
|
||||||
set(isUb $<STREQUAL:${exe},JA2UB>)
|
set(isUb $<STREQUAL:${exe},JA2UB>)
|
||||||
set(isUbEditor $<STREQUAL:${exe},JA2UBMAPEDITOR>)
|
set(isUbEditor $<STREQUAL:${exe},JA2UBMAPEDITOR>)
|
||||||
|
|
||||||
|
# static library for an app/lang combination, e.g. JA2_ENGLISH_SGP.lib
|
||||||
|
add_library(${tgt})
|
||||||
|
target_sources(${tgt} PRIVATE ${${lib}Src})
|
||||||
|
|
||||||
target_compile_definitions(${tgt} PUBLIC
|
target_compile_definitions(${tgt} PUBLIC
|
||||||
$<IF:${isEditor},JA2EDITOR;JA2BETAVERSION,>
|
$<IF:${isEditor},JA2EDITOR;JA2BETAVERSION,>
|
||||||
$<IF:${isUb},JA2UB;JA2UBMAPS,>
|
$<IF:${isUb},JA2UB;JA2UBMAPS,>
|
||||||
@@ -151,7 +164,7 @@ foreach(lang IN LISTS LangTargets)
|
|||||||
target_link_libraries(${targPrefix} PUBLIC ${tgt})
|
target_link_libraries(${targPrefix} PUBLIC ${tgt})
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
# SGP is the only one calling these, so they can go here
|
# only SGP depends on these
|
||||||
target_link_libraries(${targPrefix}_SGP PRIVATE "ddraw.lib" "${PROJECT_SOURCE_DIR}/fmodvc.lib")
|
target_link_libraries(${targPrefix}_SGP PRIVATE "ddraw.lib" "${PROJECT_SOURCE_DIR}/fmodvc.lib")
|
||||||
target_link_libraries(${targPrefix}_SGP PUBLIC libpng)
|
target_link_libraries(${targPrefix}_SGP PUBLIC libpng)
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|||||||
Reference in New Issue
Block a user