Fixed Win64 build. Enhanced cmake_vs20xx.bat to accept extra command line arguments, such as ENABLE_64BIT, ENABLE_LUA, or ENABLE_EXTRAS.

This commit is contained in:
Wei Tjong Yao 2013-07-08 00:13:55 +00:00
parent 61a8f4a98f
commit 56e60a59d8
7 changed files with 45 additions and 23 deletions

View File

@ -85,6 +85,9 @@ elseif (CMAKE_GENERATOR STREQUAL "Xcode")
endif ()
if (MSVC)
# Visual Studio-specific setup
if (ENABLE_64BIT)
enable_language (ASM_MASM)
endif ()
add_definitions (-D_CRT_SECURE_NO_WARNINGS)
set (CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /MTd")
set (CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELEASE} /MT /fp:fast /Zi /GS-")

View File

@ -80,7 +80,7 @@ To run from Xcode on iPhone/iPad Simulator, edit the Product Scheme to set "Run"
\section Building_64bit Desktop 64bit build
Currently CMake build configuration has been set to compile Urho3D as 32bit by default. To enable 64bit build for Visual Studio, run one of the cmake_vs20xx.bat by passing the option "Win64" explicitly. This overrides CMake to use a 64bit solution generator.
Currently CMake build configuration has been set to compile Urho3D as 32bit by default. To enable 64bit build for Visual Studio, run one of the cmake_vs20xx.bat by passing the option "ENABLE_64BIT" explicitly. This overrides CMake to use a 64bit solution generator.
To enable 64bit build for non-MSVC/non-Windows platform, pass the option "-DENABLE_64BIT=1" explicitly when invoking cmake_eclipse.sh/cmake_macosx.sh/cmake_gcc.sh. Alternatively, you can modify the main CMakeLists.txt to enable 64bit by default for non-MSVC/non-Windows platform.

View File

@ -8,24 +8,25 @@ set (SOURCE_FILES ${CPP_FILES} ${H_FILES})
# Define generated source files
file (MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/generated)
file (GLOB_RECURSE PKG_FILES ${CMAKE_CURRENT_SOURCE_DIR}/pkgs/*.pkg)
add_custom_command (OUTPUT generated/AudioLuaAPI.cpp generated/ContainerLuaAPI.cpp generated/CoreLuaAPI.cpp generated/EngineLuaAPI.cpp generated/GraphicsLuaAPI.cpp
generated/InputLuaAPI.cpp generated/IOLuaAPI.cpp generated/MathLuaAPI.cpp generated/NavigationLuaAPI.cpp generated/NetworkLuaAPI.cpp
generated/PhysicsLuaAPI.cpp generated/ResourceLuaAPI.cpp generated/SceneLuaAPI.cpp generated/UILuaAPI.cpp generated/LuaScriptLuaAPI.cpp
COMMAND ${PROJECT_SOURCE_DIR}/Bin/tolua++ -L basic.lua -o ${CMAKE_CURRENT_BINARY_DIR}/generated/AudioLuaAPI.cpp AudioLuaAPI.pkg DEPENDS pkgs/AudioLuaAPI.pkg pkgs/Audio/*.pkg
COMMAND ${PROJECT_SOURCE_DIR}/Bin/tolua++ -L basic.lua -o ${CMAKE_CURRENT_BINARY_DIR}/generated/ContainerLuaAPI.cpp ContainerLuaAPI.pkg DEPENDS pkgs/ContainerLuaAPI.pkg pkgs/Container/*.pkg
COMMAND ${PROJECT_SOURCE_DIR}/Bin/tolua++ -L basic.lua -o ${CMAKE_CURRENT_BINARY_DIR}/generated/CoreLuaAPI.cpp CoreLuaAPI.pkg DEPENDS pkgs/CoreLuaAPI.pkg pkgs/Core/*.pkg
COMMAND ${PROJECT_SOURCE_DIR}/Bin/tolua++ -L basic.lua -o ${CMAKE_CURRENT_BINARY_DIR}/generated/EngineLuaAPI.cpp EngineLuaAPI.pkg DEPENDS pkgs/EngineLuaAPI.pkg pkgs/Engine/*.pkg
COMMAND ${PROJECT_SOURCE_DIR}/Bin/tolua++ -L basic.lua -o ${CMAKE_CURRENT_BINARY_DIR}/generated/GraphicsLuaAPI.cpp GraphicsLuaAPI.pkg DEPENDS pkgs/GraphicsLuaAPI.pkg pkgs/Graphics/*.pkg
COMMAND ${PROJECT_SOURCE_DIR}/Bin/tolua++ -L basic.lua -o ${CMAKE_CURRENT_BINARY_DIR}/generated/InputLuaAPI.cpp InputLuaAPI.pkg DEPENDS pkgs/InputLuaAPI.pkg pkgs/Input/*.pkg
COMMAND ${PROJECT_SOURCE_DIR}/Bin/tolua++ -L basic.lua -o ${CMAKE_CURRENT_BINARY_DIR}/generated/IOLuaAPI.cpp IOLuaAPI.pkg DEPENDS pkgs/IOLuaAPI.pkg pkgs/IO/*.pkg
COMMAND ${PROJECT_SOURCE_DIR}/Bin/tolua++ -L basic.lua -o ${CMAKE_CURRENT_BINARY_DIR}/generated/MathLuaAPI.cpp MathLuaAPI.pkg DEPENDS pkgs/MathLuaAPI.pkg pkgs/Math/*.pkg
COMMAND ${PROJECT_SOURCE_DIR}/Bin/tolua++ -L basic.lua -o ${CMAKE_CURRENT_BINARY_DIR}/generated/NavigationLuaAPI.cpp NavigationLuaAPI.pkg DEPENDS pkgs/NavigationLuaAPI.pkg pkgs/Navigation/*.pkg
COMMAND ${PROJECT_SOURCE_DIR}/Bin/tolua++ -L basic.lua -o ${CMAKE_CURRENT_BINARY_DIR}/generated/NetworkLuaAPI.cpp NetworkLuaAPI.pkg DEPENDS pkgs/NetworkLuaAPI.pkg pkgs/Network/*.pkg
COMMAND ${PROJECT_SOURCE_DIR}/Bin/tolua++ -L basic.lua -o ${CMAKE_CURRENT_BINARY_DIR}/generated/PhysicsLuaAPI.cpp PhysicsLuaAPI.pkg DEPENDS pkgs/PhysicsLuaAPI.pkg pkgs/Physics/*.pkg
COMMAND ${PROJECT_SOURCE_DIR}/Bin/tolua++ -L basic.lua -o ${CMAKE_CURRENT_BINARY_DIR}/generated/ResourceLuaAPI.cpp ResourceLuaAPI.pkg DEPENDS pkgs/ResourceLuaAPI.pkg pkgs/Resource/*.pkg
COMMAND ${PROJECT_SOURCE_DIR}/Bin/tolua++ -L basic.lua -o ${CMAKE_CURRENT_BINARY_DIR}/generated/SceneLuaAPI.cpp SceneLuaAPI.pkg DEPENDS pkgs/SceneLuaAPI.pkg pkgs/Scene/*.pkg
COMMAND ${PROJECT_SOURCE_DIR}/Bin/tolua++ -L basic.lua -o ${CMAKE_CURRENT_BINARY_DIR}/generated/UILuaAPI.cpp UILuaAPI.pkg DEPENDS pkgs/UILuaAPI.pkg pkgs/UI/*.pkg
COMMAND ${PROJECT_SOURCE_DIR}/Bin/tolua++ -L basic.lua -o ${CMAKE_CURRENT_BINARY_DIR}/generated/LuaScriptLuaAPI.cpp LuaScriptLuaAPI.pkg DEPENDS pkgs/LuaScriptLuaAPI.pkg
COMMAND ${PROJECT_SOURCE_DIR}/Bin/tolua++ -L basic.lua -o ${CMAKE_CURRENT_BINARY_DIR}/generated/AudioLuaAPI.cpp AudioLuaAPI.pkg DEPENDS ${PKG_FILES}
COMMAND ${PROJECT_SOURCE_DIR}/Bin/tolua++ -L basic.lua -o ${CMAKE_CURRENT_BINARY_DIR}/generated/ContainerLuaAPI.cpp ContainerLuaAPI.pkg
COMMAND ${PROJECT_SOURCE_DIR}/Bin/tolua++ -L basic.lua -o ${CMAKE_CURRENT_BINARY_DIR}/generated/CoreLuaAPI.cpp CoreLuaAPI.pkg
COMMAND ${PROJECT_SOURCE_DIR}/Bin/tolua++ -L basic.lua -o ${CMAKE_CURRENT_BINARY_DIR}/generated/EngineLuaAPI.cpp EngineLuaAPI.pkg
COMMAND ${PROJECT_SOURCE_DIR}/Bin/tolua++ -L basic.lua -o ${CMAKE_CURRENT_BINARY_DIR}/generated/GraphicsLuaAPI.cpp GraphicsLuaAPI.pkg
COMMAND ${PROJECT_SOURCE_DIR}/Bin/tolua++ -L basic.lua -o ${CMAKE_CURRENT_BINARY_DIR}/generated/InputLuaAPI.cpp InputLuaAPI.pkg
COMMAND ${PROJECT_SOURCE_DIR}/Bin/tolua++ -L basic.lua -o ${CMAKE_CURRENT_BINARY_DIR}/generated/IOLuaAPI.cpp IOLuaAPI.pkg
COMMAND ${PROJECT_SOURCE_DIR}/Bin/tolua++ -L basic.lua -o ${CMAKE_CURRENT_BINARY_DIR}/generated/MathLuaAPI.cpp MathLuaAPI.pkg
COMMAND ${PROJECT_SOURCE_DIR}/Bin/tolua++ -L basic.lua -o ${CMAKE_CURRENT_BINARY_DIR}/generated/NavigationLuaAPI.cpp NavigationLuaAPI.pkg
COMMAND ${PROJECT_SOURCE_DIR}/Bin/tolua++ -L basic.lua -o ${CMAKE_CURRENT_BINARY_DIR}/generated/NetworkLuaAPI.cpp NetworkLuaAPI.pkg
COMMAND ${PROJECT_SOURCE_DIR}/Bin/tolua++ -L basic.lua -o ${CMAKE_CURRENT_BINARY_DIR}/generated/PhysicsLuaAPI.cpp PhysicsLuaAPI.pkg
COMMAND ${PROJECT_SOURCE_DIR}/Bin/tolua++ -L basic.lua -o ${CMAKE_CURRENT_BINARY_DIR}/generated/ResourceLuaAPI.cpp ResourceLuaAPI.pkg
COMMAND ${PROJECT_SOURCE_DIR}/Bin/tolua++ -L basic.lua -o ${CMAKE_CURRENT_BINARY_DIR}/generated/SceneLuaAPI.cpp SceneLuaAPI.pkg
COMMAND ${PROJECT_SOURCE_DIR}/Bin/tolua++ -L basic.lua -o ${CMAKE_CURRENT_BINARY_DIR}/generated/UILuaAPI.cpp UILuaAPI.pkg
COMMAND ${PROJECT_SOURCE_DIR}/Bin/tolua++ -L basic.lua -o ${CMAKE_CURRENT_BINARY_DIR}/generated/LuaScriptLuaAPI.cpp LuaScriptLuaAPI.pkg
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/pkgs
COMMENT "Generate Lua API binding on the fly")
set (SOURCE_FILES ${SOURCE_FILES} generated/AudioLuaAPI.cpp generated/ContainerLuaAPI generated/CoreLuaAPI.cpp generated/EngineLuaAPI.cpp generated/GraphicsLuaAPI.cpp

View File

@ -247,7 +247,7 @@ Desktop 64bit build
Currently CMake build configuration has been set to compile Urho3D as 32bit by
default. To enable 64bit build for Visual Studio, run one of the cmake_vs20xx.bat
by passing the option "Win64" explicitly. This overrides CMake to use a 64bit
by passing the option "ENABLE_64BIT" explicitly. This overrides CMake to use a 64bit
solution generator.
To enable 64bit build for non-MSVC/non-Windows platform, pass the

View File

@ -1,3 +1,9 @@
@del /F CMakeCache.txt
@if "%1" == "Win64" (set "arch= %1") else (set "arch=")
cmake -G "Visual Studio 9 2008%arch%"
@if /I "%1" == "ENABLE_64BIT" (set "arch= Win64") else (set "arch=")
@set "DEFINE="
@for %%n in (%*) do @call :concat %%n
cmake -G "Visual Studio 9 2008%arch%" %DEFINE%
@goto :eof
:concat
@set "DEFINE=%DEFINE% -D%1=1"
@goto :eof

View File

@ -1,3 +1,9 @@
@del /F CMakeCache.txt
@if "%1" == "Win64" (set "arch= %1") else (set "arch=")
cmake -G "Visual Studio 10%arch%"
@if /I "%1" == "ENABLE_64BIT" (set "arch= Win64") else (set "arch=")
@set "DEFINE="
@for %%n in (%*) do @call :concat %%n
cmake -G "Visual Studio 10%arch%" %DEFINE%
@goto :eof
:concat
@set "DEFINE=%DEFINE% -D%1=1"
@goto :eof

View File

@ -1,3 +1,9 @@
@del /F CMakeCache.txt
@if "%1" == "Win64" (set "arch= %1") else (set "arch=")
cmake -G "Visual Studio 11%arch%"
@if /I "%1" == "ENABLE_64BIT" (set "arch= Win64") else (set "arch=")
@set "DEFINE="
@for %%n in (%*) do @call :concat %%n
cmake -G "Visual Studio 11%arch%" %DEFINE%
@goto :eof
:concat
@set "DEFINE=%DEFINE% -D%1=1"
@goto :eof