Skip to content

Commit df05d31

Browse files
committed
merge: omni/feature/install
1 parent 114f16a commit df05d31

File tree

6 files changed

+66
-6
lines changed

6 files changed

+66
-6
lines changed

Generals/CMakeLists.txt

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,30 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
1212
# Add main build targets
1313
add_subdirectory(Code)
1414

15+
# If we are building on windows for windows, try and get the game install path from the registry.
16+
if("${CMAKE_HOST_SYSTEM}" MATCHES "Windows" AND "${CMAKE_SYSTEM}" MATCHES "Windows")
17+
# Check the CD registry path
18+
if(NOT GENERALS_INSTALL_PREFIX)
19+
get_filename_component(GENERALS_INSTALL_PREFIX "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Electronic Arts\\EA Games\\Generals;InstallPath]" ABSOLUTE CACHE)
20+
endif()
21+
22+
# Check the "First Decade" registry path
23+
if(NOT GENERALS_INSTALL_PREFIX OR "${GENERALS_INSTALL_PREFIX}" STREQUAL "/registry")
24+
get_filename_component(GENERALS_INSTALL_PREFIX "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Electronic Arts\\EA Games\\Command and Conquer The First Decade;gr_folder]" ABSOLUTE CACHE)
25+
endif()
26+
27+
# Check the Steam registry path
28+
if(NOT GENERALS_INSTALL_PREFIX OR "${GENERALS_INSTALL_PREFIX}" STREQUAL "/registry")
29+
get_filename_component(GENERALS_INSTALL_PREFIX "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Electronic Arts\\EA Games\\Generals;installPath]" ABSOLUTE CACHE)
30+
endif()
31+
endif()
32+
33+
if(GENERALS_INSTALL_PREFIX AND NOT "${GENERALS_INSTALL_PREFIX}" STREQUAL "/registry")
34+
install(TARGETS g_generals RUNTIME DESTINATION "${GENERALS_INSTALL_PREFIX}")
35+
install(FILES $<TARGET_PDB_FILE:g_generals> DESTINATION "${GENERALS_INSTALL_PREFIX}" OPTIONAL)
36+
install(TARGETS g_worldbuilder RUNTIME DESTINATION "${GENERALS_INSTALL_PREFIX}" OPTIONAL)
37+
install(FILES $<TARGET_PDB_FILE:g_worldbuilder> DESTINATION "${GENERALS_INSTALL_PREFIX}" OPTIONAL)
38+
endif()
39+
1540
feature_summary(WHAT ENABLED_FEATURES DESCRIPTION "Enabled features:")
1641
feature_summary(WHAT DISABLED_FEATURES DESCRIPTION "Disabled features:")

Generals/Code/Main/CMakeLists.txt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
add_executable(g_generals WIN32)
22

3-
set_target_properties(g_generals PROPERTIES OUTPUT_NAME generals)
3+
# Use a binary name that doesn't conflict with original game.
4+
if("${CMAKE_SYSTEM}" MATCHES "Windows")
5+
set_target_properties(g_generals PROPERTIES OUTPUT_NAME generalsv)
6+
else()
7+
set_target_properties(g_generals PROPERTIES OUTPUT_NAME generalsv)
8+
endif()
49

510
target_link_libraries(g_generals PRIVATE
611
binkstub

Generals/Code/Tools/WorldBuilder/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -224,9 +224,9 @@ if(WIN32 OR "${CMAKE_SYSTEM}" MATCHES "Windows")
224224
target_link_options(g_worldbuilder PRIVATE /NODEFAULTLIB:libci.lib /NODEFAULTLIB:libc.lib)
225225

226226
target_sources(g_worldbuilder PRIVATE res/WorldBuilder.rc)
227-
set_target_properties(g_worldbuilder PROPERTIES OUTPUT_NAME WorldBuilder)
227+
set_target_properties(g_worldbuilder PROPERTIES OUTPUT_NAME WorldBuilderV)
228228
else()
229-
set_target_properties(g_worldbuilder PROPERTIES OUTPUT_NAME worldbuilder)
229+
set_target_properties(g_worldbuilder PROPERTIES OUTPUT_NAME worldbuilderv)
230230
endif()
231231

232232
target_sources(g_worldbuilder PRIVATE ${WORLDBUILDER_SRC})

GeneralsMD/CMakeLists.txt

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,29 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
1212
# Add main build targets
1313
add_subdirectory(Code)
1414

15+
# If we are building on windows for windows, try and get the game install path from the registry.
16+
if("${CMAKE_HOST_SYSTEM}" MATCHES "Windows" AND "${CMAKE_SYSTEM}" MATCHES "Windows")
17+
if(NOT ZEROHOUR_INSTALL_PREFIX)
18+
get_filename_component(ZEROHOUR_INSTALL_PREFIX "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Electronic Arts\\EA Games\\Command and Conquer Generals Zero Hour;InstallPath]" ABSOLUTE CACHE)
19+
endif()
20+
21+
# Check the "First Decade" registry path
22+
if(NOT ZEROHOUR_INSTALL_PREFIX OR "${ZEROHOUR_INSTALL_PREFIX}" STREQUAL "/registry")
23+
get_filename_component(ZEROHOUR_INSTALL_PREFIX "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Electronic Arts\\EA Games\\Command and Conquer The First Decade;zh_folder]" ABSOLUTE CACHE)
24+
endif()
25+
26+
# Check the Steam registry path
27+
if(NOT ZEROHOUR_INSTALL_PREFIX OR "${ZEROHOUR_INSTALL_PREFIX}" STREQUAL "/registry")
28+
get_filename_component(ZEROHOUR_INSTALL_PREFIX "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Electronic Arts\\EA Games\\ZeroHour;installPath]" ABSOLUTE CACHE)
29+
endif()
30+
endif()
31+
32+
if(ZEROHOUR_INSTALL_PREFIX AND NOT "${ZEROHOUR_INSTALL_PREFIX}" STREQUAL "/registry")
33+
install(TARGETS z_generals RUNTIME DESTINATION "${ZEROHOUR_INSTALL_PREFIX}")
34+
install(FILES $<TARGET_PDB_FILE:z_generals> DESTINATION "${ZEROHOUR_INSTALL_PREFIX}" OPTIONAL)
35+
install(TARGETS z_worldbuilder RUNTIME DESTINATION "${ZEROHOUR_INSTALL_PREFIX}" OPTIONAL)
36+
install(FILES $<TARGET_PDB_FILE:z_worldbuilder> DESTINATION "${ZEROHOUR_INSTALL_PREFIX}" OPTIONAL)
37+
endif()
38+
1539
feature_summary(WHAT ENABLED_FEATURES DESCRIPTION "Enabled features:")
1640
feature_summary(WHAT DISABLED_FEATURES DESCRIPTION "Disabled features:")

GeneralsMD/Code/Main/CMakeLists.txt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
add_executable(z_generals WIN32)
2-
set_target_properties(z_generals PROPERTIES OUTPUT_NAME generals)
2+
3+
# Use a binary name that doesn't conflict with original game.
4+
if("${CMAKE_SYSTEM}" MATCHES "Windows")
5+
set_target_properties(z_generals PROPERTIES OUTPUT_NAME generalszh)
6+
else()
7+
set_target_properties(z_generals PROPERTIES OUTPUT_NAME generalszh)
8+
endif()
39

410
target_link_libraries(z_generals PRIVATE
511
binkstub

GeneralsMD/Code/Tools/WorldBuilder/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,7 @@ if(WIN32 OR "${CMAKE_SYSTEM}" MATCHES "Windows")
229229
target_link_options(z_worldbuilder PRIVATE /NODEFAULTLIB:libci.lib /NODEFAULTLIB:libc.lib)
230230
target_compile_definitions(z_worldbuilder PRIVATE _AFXDLL)
231231
target_sources(z_worldbuilder PRIVATE res/WorldBuilder.rc)
232-
set_target_properties(z_worldbuilder PROPERTIES OUTPUT_NAME WorldBuilder)
232+
set_target_properties(z_worldbuilder PROPERTIES OUTPUT_NAME WorldBuilderZH)
233233
else()
234-
set_target_properties(z_worldbuilder PROPERTIES OUTPUT_NAME worldbuilder)
234+
set_target_properties(z_worldbuilder PROPERTIES OUTPUT_NAME worldbuilderzh)
235235
endif()

0 commit comments

Comments
 (0)