Skip to content
Draft
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
198 changes: 18 additions & 180 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,190 +1,28 @@
cmake_minimum_required(VERSION 3.1)
project(Lithtech)

if(NOT WIN32)
find_package(PkgConfig)
pkg_check_modules(DXVK dxvk-native)
if(DXVK_FOUND)
set(GL OFF)
set(VK ON)
else()
set(GL ON)
set(VK OFF)
endif()
endif()

option(BUILD_ENGINE "Build engine" ON)
option(BUILD_NOLF2 "Build No One Lives Forever 2 game code" ON)
option(BUILD_TRON "Build Tron 2.0 game code" OFF)
option(BUILD_BLOOD2 "Build Blood II game code" OFF)
option(BUILD_FEAR "Build F.E.A.R. game code" OFF)
option(BUILD_NOLF "Build No One Lives Forever game code" OFF)
option(BUILD_SHOGO "Build Shogo game code" OFF)
option(BUILD_TOOLS "Build tools" OFF)
if(WIN32)
option(ENABLE_D3D "Enable Direct3D" ON)
option(ENABLE_DIRECTX "Enable DirectX" ON)
option(ENABLE_DIRECTSHOW "Enable DirectShow" ON)
option(ENABLE_OPENAL "Use OpenAL as audio backend" OFF)
option(ENABLE_DIRECTMUSIC "Use DirectMusic as music backend" ON)
else(WIN32)
option(ENABLE_OPENGL "Enable OpenGL 3.3" ${GL})
option(ENABLE_VULKAN "Enable Vulkan" OFF)
option(ENABLE_DXVK "Enable DXVK" ${VK})
option(ENABLE_OPENAL "Use OpenAL as audio backend" ON)
option(ENABLE_DIRECTMUSIC OFF)
endif(WIN32)
option(USE_INTERNAL_ZLIB "Use bundled zlib" ON) # eventually want default to be OFF
option(USE_INTERNAL_FREETYPE "Use bundled freetype" ON) # eventually want default to be OFF

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/OUT")
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED 17)

if (ENABLE_DXVK)
option(ENABLE_D3D "Enable Direct3D" ON)
pkg_check_modules(DXVK dxvk-native)
add_definitions(-DUSE_DXVK)
set(DXVK_INCLUDE_DIRS ${DXVK_INCLUDEDIR}/native/windows ${DXVK_INCLUDEDIR}/native/directx)
set(DXVK_LIB_DIRS ${DXVK_LIBDIR})
endif()

if (ENABLE_OPENAL AND NOT WIN32)
pkg_check_modules(OPENAL REQUIRED openal)
pkg_check_modules(MPG123 REQUIRED libmpg123)
endif()

if(ENABLE_D3D)
add_definitions(-D__D3D -D__D3DREND)
endif(ENABLE_D3D)


if(WIN32)
add_definitions(-D_WINDOWS)
else(WIN32)
add_definitions(-D_LINUX -D__LINUX)
set(LINUX 1)
endif(WIN32)

if(MSVC)
add_definitions(-D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE)
endif(MSVC)

if(DEBUG)
add_definitions(-D_DEBUG)
else(DEBUG)
add_definitions(-D_FINAL)
endif(DEBUG)


if(USE_INTERNAL_ZLIB)
#set zlib vars
add_subdirectory(libs/zlib) # LIB_ZLib
else(USE_INTERNAL_ZLIB)
find_package(ZLIB)
endif(USE_INTERNAL_ZLIB)

# move to Lib_UI CMakeLists.txt?
if(USE_INTERNAL_FREETYPE)
#set freetype vars
else(USE_INTERNAL_FREETYPE)
find_package(Freetype)
endif(USE_INTERNAL_FREETYPE)


add_subdirectory(libs/lith) # LIB_Lith
add_subdirectory(libs/stdlith) # LIB_StdLith
add_subdirectory(libs/ltmem) # LIB_LTMem
add_subdirectory(libs/rezmgr) # LIB_RezMgr
add_subdirectory(libs/RandomGen) # LIB_Random

if(LINUX)
set(JSON_BuildTests off)
add_subdirectory(libs/DynRes)
add_subdirectory(json)
endif(LINUX)

if(BUILD_ENGINE)
add_subdirectory(runtime/ui) # LIB_UI
add_subdirectory(runtime/info) # LIB_Info
add_subdirectory(runtime/sound) # LIB_ILTSound
add_subdirectory(runtime/server) # DLL_Server
add_subdirectory(runtime/client) # EXE_Lithtech

if(ENABLE_D3D)
add_subdirectory(runtime/render_a/src/sys/d3d) # LIB_D3DRender
endif(ENABLE_D3D)
if(WIN32)
if(NOT ENABLE_OPENAL)
add_subdirectory(runtime/sound/src/sys/s_dx8) # DLL_SndDrvDX8
endif(NOT ENABLE_OPENAL)

if(ENABLE_DIRECTSHOW)
add_subdirectory(libs/dshow) # LIB_DShow
endif(ENABLE_DIRECTSHOW)

add_subdirectory(runtime/winbuild/ltmsg) # DLL_LTMsg
endif(WIN32)
endif(BUILD_ENGINE)
add_definitions(-D__D3D -D__D3DREND)
add_definitions(-D_WINDOWS)
add_definitions(-D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE)

if(BUILD_NOLF2)
add_subdirectory(libs/MFCStub) # LIB_MFCStub
add_subdirectory(libs/ButeMgr) # LIB_ButeMgr
add_subdirectory(libs/CryptMgr) # LIB_CryptMgr
add_subdirectory(libs/RegMgr) # LIB_RegMgr
add_subdirectory(libs/LTGUIMgr) # LIB_LTGUIMgr
add_subdirectory(libs/ServerDir) # ServerDir
add_subdirectory(libs/WONAPI) # LIB_WONAPI
add_subdirectory(NOLF2/ClientFxDLL) # ClientFXDLL
add_subdirectory(NOLF2/ClientRes/TO2) # ClientRes
add_subdirectory(NOLF2/ClientShellDLL/TO2) # ClientShellDLL
add_subdirectory(NOLF2/ObjectDLL/TO2) # ObjectDLL
add_subdirectory(NOLF2/ServerRes/TO2) # ServerRes
endif(BUILD_NOLF2)
add_subdirectory(libs/zlib)
add_subdirectory(libs/stdlith)

if(BUILD_FEAR)
if(NOT BUILD_NOLF2)
add_subdirectory(libs/MFCStub) # LIB_MFCStub
add_subdirectory(libs/ButeMgr) # LIB_ButeMgr
add_subdirectory(libs/CryptMgr) # LIB_CryptMgr
add_subdirectory(libs/RegMgr) # LIB_RegMgr
add_subdirectory(libs/LTGUIMgr) # LIB_LTGUIMgr
add_subdirectory(libs/ServerDir) # ServerDir
add_subdirectory(libs/WONAPI) # LIB_WONAPI
endif(NOT BUILD_NOLF2)
add_subdirectory(FEAR/ClientFxDLL) # ClientFXDLL
# add_subdirectory(NOLF2/ClientRes/TO2) # ClientRes
add_subdirectory(FEAR/ClientShellDLL) # ClientShellDLL
# add_subdirectory(NOLF2/ObjectDLL/TO2) # ObjectDLL
# add_subdirectory(NOLF2/ServerRes/TO2) # ServerRes
endif(BUILD_FEAR)
#add_subdirectory(runtime/render_a/src/sys/d3d)
add_subdirectory(libs/RegMgr)
add_subdirectory(libs/genregmgr)
add_subdirectory(libs/MFCStub)
add_subdirectory(libs/CryptMgr)
add_subdirectory(libs/ButeMgr)
add_subdirectory(libs/ltamgr)
add_subdirectory(libs/dibmgr)
add_subdirectory(libs/rezmgr)
add_subdirectory(libs/lith)

if(BUILD_TRON)
if(NOT BUILD_NOLF2)
add_subdirectory(libs/MFCStub)
add_subdirectory(libs/ButeMgr)
add_subdirectory(libs/CryptMgr)
add_subdirectory(libs/RegMgr)
add_subdirectory(libs/LTGUIMgr)
add_subdirectory(libs/ServerDir)
add_subdirectory(libs/WONAPI)
add_subdirectory(NOLF2/ClientFxDLL) # ClientFXDLL
endif(NOT BUILD_NOLF2)
add_subdirectory(NOLF2/ClientRes/TRON) # ClientRes
add_subdirectory(NOLF2/ClientShellDLL/TRON) # ClientShellDLL
add_subdirectory(NOLF2/ObjectDLL/TRON) # ObjectDLL
add_subdirectory(NOLF2/ServerRes/TRON) # ServerRes
endif(BUILD_TRON)
add_subdirectory(tools/shared/model)
add_subdirectory(tools/shared/world)

if(BUILD_TOOLS)
add_subdirectory(tools/DtxView) # TOOLS_DtxView
add_subdirectory(tools/LithRez) # TOOLS_LithRez
endif(BUILD_TOOLS)
add_subdirectory(tools/DEdit) # TOOLS_DEdit

if(NOT WIN32)
add_subdirectory(tests/RegMgr)
add_subdirectory(tests/CShell)
add_subdirectory(tests/DynRes)
add_subdirectory(tests/DynResDLL)
add_subdirectory(tests/rndgen)
endif(NOT WIN32)
2 changes: 1 addition & 1 deletion libs/ButeMgr/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ add_library(${PROJECT_NAME} STATIC
butemgr.cpp
stdafx.cpp)

add_definitions(-D_NOMFC)
add_definitions(-D_AFXDLL -D_WIN32_WINNT=0x501)
if(MSVC)
add_definitions(-D_SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS) # VC14 deprecated stdext::hash_*
endif(MSVC)
Expand Down
2 changes: 1 addition & 1 deletion libs/ButeMgr/stdafx.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,5 @@
#if defined(WIN32)
#include <windows.h>
#endif
#include "mfcstub.h"
//#include "mfcstub.h"
#endif
12 changes: 12 additions & 0 deletions libs/dibmgr/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
project(LIB_dibmgr)

add_definitions(-D_AFXDLL -D_WIN32_WINNT=0x501)

set(libsources
dib.cpp
dibmgr.cpp
dibpal.cpp)

add_library(${PROJECT_NAME} STATIC ${libsources})

include_directories(../../sdk/inc)
9 changes: 9 additions & 0 deletions libs/genregmgr/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
project(LIB_GenRegMgr)

add_library(${PROJECT_NAME} STATIC
genregmgr.cpp)

include_directories(../lith
${CMAKE_SOURCE_DIR}/cppcodec
${CMAKE_SOURCE_DIR}/json/single_include)

23 changes: 23 additions & 0 deletions libs/ltamgr/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
project(LIB_ltamgr)

set(libsources
ltabitfile.cpp
ltacompressedfile.cpp
ltaconverter.cpp
ltafile.cpp
ltafilebuffer.cpp
ltahuffmantree.cpp
ltaloadonlyalloc.cpp
ltanode.cpp
ltanodebuilder.cpp
ltanodeiterator.cpp
ltanodreader.cpp
ltanodewriter.cpp
ltareader.cpp
ltautil.cpp
ltawriter.cpp
lzsswindow.cpp)

add_library(${PROJECT_NAME} STATIC ${libsources})

include_directories(../../sdk/inc)
2 changes: 2 additions & 0 deletions libs/ltamgr/ltaconverter.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@

#include "ltbasedefs.h"

#undef StrToInt

class CLTAConverter
{
public:
Expand Down
3 changes: 2 additions & 1 deletion libs/ltamgr/ltahuffmantree.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -234,7 +234,8 @@ bool CLTAHuffmanTree::IncrementWeight(uint8 nItem)
pCurr->SetWeight(pCurr->GetWeight() + 1);

//see if we need to swap it
for(uint32 nTestNode = pCurr->GetWeightIndex(); nTestNode > 0; nTestNode--)
uint32 nTestNode;
for(nTestNode = pCurr->GetWeightIndex(); nTestNode > 0; nTestNode--)
{
if(m_pWeights[nTestNode - 1]->GetWeight() >= pCurr->GetWeight())
{
Expand Down
2 changes: 2 additions & 0 deletions libs/ltamgr/ltaparseutils.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@
# include "ltanode.h"
#endif

#undef StrToInt

//determines if the node is a list and if it has 2 elements
inline bool IsPair( const CLTANode* pNode );

Expand Down
3 changes: 3 additions & 0 deletions libs/rezmgr/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ add_library(${PROJECT_NAME} STATIC

include_directories(../../sdk/inc
../lith)

target_link_libraries(${PROJECT_NAME}
LIB_Lith)

if(LINUX)
set_target_properties(${PROJECT_NAME} PROPERTIES COMPILE_FLAGS "-fpermissive -fPIC")
Expand Down
32 changes: 32 additions & 0 deletions runtime/model/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
project(LIB_Model)

find_package(SDL2 REQUIRED)

set(libsources
src/animtracker.cpp
src/model.cpp
src/model_load.cpp
src/model_ops.cpp
src/modelallocations.cpp
src/transformmaker.cpp)

if(ENABLE_D3D)
set(libsources ${libsources}
src/sys/d3d/d3d_model_load.cpp)
include_directories(sys/d3d)
endif(ENABLE_D3D)

include_directories(src
../../sdk/inc
../../libs/stdlith
../shared/src
../kernel/src
../kernel/mem/src
../lithtemplate
../world/src
../kernel/src/sys/win
../shared/src/sys/win
../../tools/shared/model
${SDL2_INCLUDE_DIRS})

add_library(${PROJECT_NAME} STATIC ${libsources})
2 changes: 1 addition & 1 deletion runtime/render_a/src/sys/d3d/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -119,5 +119,5 @@ set_property(TARGET ${PROJECT_NAME}

if(WIN32) # FIXME: find directx path
add_definitions(-DUSE_ID3DXEFFECT)
include_directories("C:\\Program Files (x86)\\Microsoft DirectX SDK (August 2007)\\Include")
include_directories("D:\\Program Files (x86)\\Microsoft DirectX SDK (June 2010)\\Include")
endif(WIN32)
9 changes: 7 additions & 2 deletions runtime/render_a/src/sys/d3d/d3d_texture.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -374,9 +374,14 @@ struct tex {
struct cube_tex : public tex {
LPDIRECT3DCUBETEXTURE9 pD3DDstTexture;
D3DCUBEMAP_FACES i;

// Constructor for cube_tex
cube_tex(const tex& t) : tex(t) {}
};
struct norm_tex : public tex {
LPDIRECT3DTEXTURE9 pD3DDstTexture;

norm_tex(const tex& t) : tex(t) {}
};

HRESULT copyCubeTexture(const cube_tex& t )
Expand Down Expand Up @@ -453,7 +458,7 @@ bool CTextureManager::UploadRTexture(TextureData* pSrcTexture, uint32 iSrcLvl, R
if (pDstTexture->IsCubeMap())
{
// Cube map texture...
cube_tex t{t_i};
cube_tex t(t_i);
t.pD3DDstTexture = pDstTexture->m_pD3DCubeTexture;
for (uint32 i = 0; i < 6; ++i)
{
Expand All @@ -465,7 +470,7 @@ bool CTextureManager::UploadRTexture(TextureData* pSrcTexture, uint32 iSrcLvl, R
else
{
// Normal texture..
norm_tex t{t_i};
norm_tex t(t_i);
t.pD3DDstTexture = pDstTexture->m_pD3DTexture;
if (copyNormalTexture(t) != D3D_OK)
return false;
Expand Down
Loading