Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions Generals/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,33 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
# Add main build targets
add_subdirectory(Code)

# If we are building on windows for windows, try and get the game install path from the registry.
if("${CMAKE_HOST_SYSTEM}" MATCHES "Windows" AND "${CMAKE_SYSTEM}" MATCHES "Windows")
# Check the CD registry path
if(NOT GENZH_GENERALS_INSTALL_PREFIX)
get_filename_component(GENZH_GENERALS_INSTALL_PREFIX "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Electronic Arts\\EA Games\\Generals;InstallPath]" ABSOLUTE CACHE)
endif()

# Check the "First Decade" registry path
if(NOT GENZH_GENERALS_INSTALL_PREFIX OR "${GENZH_GENERALS_INSTALL_PREFIX}" STREQUAL "/registry")
get_filename_component(GENZH_GENERALS_INSTALL_PREFIX "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Electronic Arts\\EA Games\\Command and Conquer The First Decade;gr_folder]" ABSOLUTE CACHE)
endif()

# Check the Steam registry path
if(NOT GENZH_GENERALS_INSTALL_PREFIX OR "${GENZH_GENERALS_INSTALL_PREFIX}" STREQUAL "/registry")
get_filename_component(GENZH_GENERALS_INSTALL_PREFIX "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Electronic Arts\\EA Games\\Generals;installPath]" ABSOLUTE CACHE)
endif()
endif()

if(GENZH_GENERALS_INSTALL_PREFIX AND NOT "${GENZH_GENERALS_INSTALL_PREFIX}" STREQUAL "/registry")
install(TARGETS g_generals RUNTIME DESTINATION "${GENZH_GENERALS_INSTALL_PREFIX}")
install(FILES $<TARGET_PDB_FILE:g_generals> DESTINATION "${GENZH_GENERALS_INSTALL_PREFIX}" OPTIONAL)

if(TARGET g_worldbuilder)
install(TARGETS g_worldbuilder RUNTIME DESTINATION "${GENZH_GENERALS_INSTALL_PREFIX}" OPTIONAL)
install(FILES $<TARGET_PDB_FILE:g_worldbuilder> DESTINATION "${GENZH_GENERALS_INSTALL_PREFIX}" OPTIONAL)
endif()
endif()

feature_summary(WHAT ENABLED_FEATURES DESCRIPTION "Enabled features:")
feature_summary(WHAT DISABLED_FEATURES DESCRIPTION "Disabled features:")
7 changes: 6 additions & 1 deletion Generals/Code/Main/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
add_executable(g_generals WIN32)

set_target_properties(g_generals PROPERTIES OUTPUT_NAME generals)
# Use a binary name that doesn't conflict with original game.
if("${CMAKE_SYSTEM}" MATCHES "Windows")
set_target_properties(g_generals PROPERTIES OUTPUT_NAME generalsv)
else()
set_target_properties(g_generals PROPERTIES OUTPUT_NAME generalsv)
endif()

target_link_libraries(g_generals PRIVATE
binkstub
Expand Down
4 changes: 2 additions & 2 deletions Generals/Code/Tools/WorldBuilder/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -224,9 +224,9 @@ if(WIN32 OR "${CMAKE_SYSTEM}" MATCHES "Windows")
target_link_options(g_worldbuilder PRIVATE /NODEFAULTLIB:libci.lib /NODEFAULTLIB:libc.lib)

target_sources(g_worldbuilder PRIVATE res/WorldBuilder.rc)
set_target_properties(g_worldbuilder PROPERTIES OUTPUT_NAME WorldBuilder)
set_target_properties(g_worldbuilder PROPERTIES OUTPUT_NAME WorldBuilderV)
else()
set_target_properties(g_worldbuilder PROPERTIES OUTPUT_NAME worldbuilder)
set_target_properties(g_worldbuilder PROPERTIES OUTPUT_NAME worldbuilderv)
endif()

target_sources(g_worldbuilder PRIVATE ${WORLDBUILDER_SRC})
27 changes: 27 additions & 0 deletions GeneralsMD/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,32 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
# Add main build targets
add_subdirectory(Code)

# If we are building on windows for windows, try and get the game install path from the registry.
if("${CMAKE_HOST_SYSTEM}" MATCHES "Windows" AND "${CMAKE_SYSTEM}" MATCHES "Windows")
if(NOT GENZH_ZEROHOUR_INSTALL_PREFIX)
get_filename_component(GENZH_ZEROHOUR_INSTALL_PREFIX "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Electronic Arts\\EA Games\\Command and Conquer Generals Zero Hour;InstallPath]" ABSOLUTE CACHE)
endif()

# Check the "First Decade" registry path
if(NOT GENZH_ZEROHOUR_INSTALL_PREFIX OR "${GENZH_ZEROHOUR_INSTALL_PREFIX}" STREQUAL "/registry")
get_filename_component(GENZH_ZEROHOUR_INSTALL_PREFIX "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Electronic Arts\\EA Games\\Command and Conquer The First Decade;zh_folder]" ABSOLUTE CACHE)
endif()

# Check the Steam registry path
if(NOT GENZH_ZEROHOUR_INSTALL_PREFIX OR "${GENZH_ZEROHOUR_INSTALL_PREFIX}" STREQUAL "/registry")
get_filename_component(GENZH_ZEROHOUR_INSTALL_PREFIX "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Electronic Arts\\EA Games\\ZeroHour;installPath]" ABSOLUTE CACHE)
endif()
endif()

if(GENZH_ZEROHOUR_INSTALL_PREFIX AND NOT "${GENZH_ZEROHOUR_INSTALL_PREFIX}" STREQUAL "/registry")
install(TARGETS z_generals RUNTIME DESTINATION "${GENZH_ZEROHOUR_INSTALL_PREFIX}")
install(FILES $<TARGET_PDB_FILE:z_generals> DESTINATION "${GENZH_ZEROHOUR_INSTALL_PREFIX}" OPTIONAL)

if(TARGET z_worldbuilder)
install(TARGETS z_worldbuilder RUNTIME DESTINATION "${GENZH_ZEROHOUR_INSTALL_PREFIX}" OPTIONAL)
install(FILES $<TARGET_PDB_FILE:z_worldbuilder> DESTINATION "${GENZH_ZEROHOUR_INSTALL_PREFIX}" OPTIONAL)
endif()
endif()

feature_summary(WHAT ENABLED_FEATURES DESCRIPTION "Enabled features:")
feature_summary(WHAT DISABLED_FEATURES DESCRIPTION "Disabled features:")
8 changes: 7 additions & 1 deletion GeneralsMD/Code/Main/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
add_executable(z_generals WIN32)
set_target_properties(z_generals PROPERTIES OUTPUT_NAME generals)

# Use a binary name that doesn't conflict with original game.
if("${CMAKE_SYSTEM}" MATCHES "Windows")
set_target_properties(z_generals PROPERTIES OUTPUT_NAME generalszh)
else()
set_target_properties(z_generals PROPERTIES OUTPUT_NAME generalszh)
endif()

target_link_libraries(z_generals PRIVATE
binkstub
Expand Down
4 changes: 2 additions & 2 deletions GeneralsMD/Code/Tools/WorldBuilder/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -229,7 +229,7 @@ if(WIN32 OR "${CMAKE_SYSTEM}" MATCHES "Windows")
target_link_options(z_worldbuilder PRIVATE /NODEFAULTLIB:libci.lib /NODEFAULTLIB:libc.lib)
target_compile_definitions(z_worldbuilder PRIVATE _AFXDLL)
target_sources(z_worldbuilder PRIVATE res/WorldBuilder.rc)
set_target_properties(z_worldbuilder PROPERTIES OUTPUT_NAME WorldBuilder)
set_target_properties(z_worldbuilder PROPERTIES OUTPUT_NAME WorldBuilderZH)
else()
set_target_properties(z_worldbuilder PROPERTIES OUTPUT_NAME worldbuilder)
set_target_properties(z_worldbuilder PROPERTIES OUTPUT_NAME worldbuilderzh)
endif()
Loading