Adjustments to CMakeLists.txt

This commit is contained in:
Christian Semmler 2025-01-06 16:00:22 -07:00
parent fd656ed900
commit 7eeeea45de

View File

@ -64,7 +64,12 @@ option(ISLE_USE_SMARTHEAP "Build LEGO1.DLL with SmartHeap" ${MSVC_FOR_DECOMP})
option(ISLE_USE_DX5 "Build with internal DirectX 5 SDK" ON) option(ISLE_USE_DX5 "Build with internal DirectX 5 SDK" ON)
option(ISLE_DECOMP_ASSERT "Assert struct size" ${MSVC_FOR_DECOMP}) option(ISLE_DECOMP_ASSERT "Assert struct size" ${MSVC_FOR_DECOMP})
cmake_dependent_option(ISLE_USE_DX5_LIBS "Build with internal DirectX 5 SDK Libraries" ON ISLE_USE_DX5 OFF) cmake_dependent_option(ISLE_USE_DX5_LIBS "Build with internal DirectX 5 SDK Libraries" ON ISLE_USE_DX5 OFF)
option(ISLE_BUILD_BETA10 "Build BETA10.EXE library" OFF) option(ISLE_BUILD_LEGO1 "Build LEGO1.DLL library" ON)
option(ISLE_BUILD_BETA10 "Build BETA10.DLL library" OFF)
if(NOT (ISLE_BUILD_LEGO1 OR ISLE_BUILD_BETA10))
message(FATAL_ERROR "ISLE_BUILD_LEGO1 AND ISLE_BUILD_BETA10 cannot be both disabled")
endif()
add_cxx_warning(parentheses) add_cxx_warning(parentheses)
@ -460,14 +465,16 @@ if (ISLE_USE_SMARTHEAP)
list(APPEND lego1_link_libraries SmartHeap::SmartHeap) list(APPEND lego1_link_libraries SmartHeap::SmartHeap)
endif() endif()
add_lego_libraries(lego1 if(ISLE_BUILD_LEGO1)
LINK_LIBRARIES ${lego1_link_libraries} add_lego_libraries(lego1
DLL_OUTPUT_NAME "LEGO1" LINK_LIBRARIES ${lego1_link_libraries}
DLL_PREFIX "" DLL_OUTPUT_NAME "LEGO1"
DLL_SUFFIX ".DLL" DLL_PREFIX ""
OUT_TARGETS lego1_targets DLL_SUFFIX ".DLL"
) OUT_TARGETS lego1_targets
reccmp_add_target(lego1 ID LEGO1) )
reccmp_add_target(lego1 ID LEGO1)
endif()
if(ISLE_BUILD_BETA10) if(ISLE_BUILD_BETA10)
add_lego_libraries(beta10 add_lego_libraries(beta10
@ -498,7 +505,12 @@ if (ISLE_BUILD_APP)
endif() endif()
# Link DSOUND, WINMM, and LEGO1 # Link DSOUND, WINMM, and LEGO1
target_link_libraries(isle PRIVATE dsound winmm lego1) target_link_libraries(isle PRIVATE dsound winmm)
if(ISLE_BUILD_LEGO1)
target_link_libraries(isle PRIVATE lego1)
else()
target_link_libraries(isle PRIVATE beta10)
endif()
# Make sure filenames are ALL CAPS # Make sure filenames are ALL CAPS
set_property(TARGET isle PROPERTY OUTPUT_NAME ISLE) set_property(TARGET isle PROPERTY OUTPUT_NAME ISLE)
@ -577,10 +589,11 @@ if (MSVC_FOR_DECOMP)
set_property(TARGET isle ${lego1_targets} PROPERTY MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>") set_property(TARGET isle ${lego1_targets} PROPERTY MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
endif() endif()
target_link_options(lego1 PRIVATE "/OPT:REF") if(TARGET lego1)
target_link_options(lego1 PRIVATE "/OPT:REF")
# Equivalent to target_compile_options(... PRIVATE "/MT$<$<CONFIG:Debug>:d>") # Equivalent to target_compile_options(... PRIVATE "/MT$<$<CONFIG:Debug>:d>")
set_property(TARGET lego1 ${lego1_targets} ${beta10_targets} PROPERTY MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>") set_property(TARGET lego1 ${lego1_targets} ${beta10_targets} PROPERTY MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
endif()
set(CMAKE_CXX_FLAGS "/W3 /GX /D \"WIN32\" /D \"_WINDOWS\"") set(CMAKE_CXX_FLAGS "/W3 /GX /D \"WIN32\" /D \"_WINDOWS\"")
set(CMAKE_CXX_FLAGS_DEBUG "/Gm /Zi /Od /D \"_DEBUG\"") set(CMAKE_CXX_FLAGS_DEBUG "/Gm /Zi /Od /D \"_DEBUG\"")