1
0
Fork 0

moved to CMAKE

This commit is contained in:
Frank Celler 2016-02-20 12:54:58 +01:00
parent 347903f393
commit 3ed64c8e53
1 changed files with 99 additions and 127 deletions

View File

@ -37,165 +37,137 @@ endif ()
## ZLIB ## ZLIB
################################################################################ ################################################################################
if (UNIX) add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/zlib-1.2.7)
ExternalProject_Add(zlib_build
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/zlib-1.2.7
BUILD_IN_SOURCE 1
PREFIX ${CMAKE_CURRENT_BINARY_DIR}/zlib
CONFIGURE_COMMAND CC=${CMAKE_C_COMPILER} ./configure --prefix=${CMAKE_CURRENT_BINARY_DIR}/zlib --static
INSTALL_COMMAND ""
UPDATE_COMMAND ""
)
endif ()
import_target(zlib zlib_build
"${CMAKE_CURRENT_SOURCE_DIR}/libev"
"${CMAKE_CURRENT_SOURCE_DIR}/libev/.libs/libev.a"
)
################################################################################ ################################################################################
## EV ## EV
################################################################################ ################################################################################
if (UNIX) add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/libev)
ExternalProject_Add(ev_build
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libev
BUILD_IN_SOURCE 1
PREFIX ${CMAKE_CURRENT_BINARY_DIR}/libev
CONFIGURE_COMMAND ./configure --prefix=${CMAKE_CURRENT_BINARY_DIR}/libev --enable-static --disable-shared ${THIRDP_BUILDFLAGS}
INSTALL_COMMAND ""
UPDATE_COMMAND ""
)
endif ()
import_target(ev ev_build
"${CMAKE_CURRENT_SOURCE_DIR}/libev"
"${CMAKE_CURRENT_SOURCE_DIR}/libev/.libs/libev.a"
)
################################################################################ ################################################################################
## V8 and ICU ## V8 and ICU
################################################################################ ################################################################################
set(V8_DIR "${CMAKE_CURRENT_SOURCE_DIR}/V8-4.3.61") # set(V8_DIR "${CMAKE_CURRENT_SOURCE_DIR}/V8-4.3.61")
# doesn't work? # # doesn't work?
set(V8_TARGET_DIR "${CMAKE_CURRENT_BINARY_DIR}/v8") # set(V8_TARGET_DIR "${CMAKE_CURRENT_BINARY_DIR}/v8")
#set(V8_TARGET_DIR "out") # #set(V8_TARGET_DIR "out")
if ("${HOST_BITS}" STREQUAL "64") # if ("${HOST_BITS}" STREQUAL "64")
set(TARGET_ARCH "x64") # set(TARGET_ARCH "x64")
else() # else()
message(ERROR "WHAT THE FUCK!") # message(ERROR "WHAT THE FUCK!")
set(TARGET_ARCH "ia32") # set(TARGET_ARCH "ia32")
endif() # TODO: ARM? Win32? # endif() # TODO: ARM? Win32?
if(DEBUG) # if(DEBUG)
list(APPEND V8_GYP_ARGS -Dv8_enable_backtrace=1) # list(APPEND V8_GYP_ARGS -Dv8_enable_backtrace=1)
set(V8_TARGET_ARCH "${TARGET_ARCH}.debug") # set(V8_TARGET_ARCH "${TARGET_ARCH}.debug")
else() # else()
set(V8_TARGET_ARCH "${TARGET_ARCH}.release") # set(V8_TARGET_ARCH "${TARGET_ARCH}.release")
endif() # endif()
list(APPEND V8_GYP_ARGS build/gyp/gyp_main.py --generator-output=${V8_TARGET_DIR} build/all.gyp) # list(APPEND V8_GYP_ARGS build/gyp/gyp_main.py --generator-output=${V8_TARGET_DIR} build/all.gyp)
if(WIN32) # if(WIN32)
# TODO: get this from the main configure paramentrisation # # TODO: get this from the main configure paramentrisation
# CMAKE_BUILD_TYPE:STRING=RelWithDebInfo # # CMAKE_BUILD_TYPE:STRING=RelWithDebInfo
# -G\ msvs_version=2013 # # -G\ msvs_version=2013
# -Dtarget_arch=x64 # # -Dtarget_arch=x64
# -Dmode=release # # -Dmode=release
list(APPEND V8_GYP_ARGS -Dcomponent=static_library -Dlibrary=static_library) # list(APPEND V8_GYP_ARGS -Dcomponent=static_library -Dlibrary=static_library)
else() # else()
# -Dwerror='' breaks shit... rather... -Dwerror= # # -Dwerror='' breaks shit... rather... -Dwerror=
list(APPEND V8_GYP_ARGS -Ibuild/standalone.gypi --depth=. -Dstandalone_static_library=1 -Dlinux_use_bundled_gold=0 -Dlinux_use_gold_flags=0-Dv8_no_strict_aliasing=1) # list(APPEND V8_GYP_ARGS -Ibuild/standalone.gypi --depth=. -Dstandalone_static_library=1 -Dlinux_use_bundled_gold=0 -Dlinux_use_gold_flags=0-Dv8_no_strict_aliasing=1)
endif() # endif()
list(APPEND V8_GYP_ARGS -Dv8_target_arch=${TARGET_ARCH} -S.${V8_TARGET_ARCH}) # list(APPEND V8_GYP_ARGS -Dv8_target_arch=${TARGET_ARCH} -S.${V8_TARGET_ARCH})
if (UNIX) # if (UNIX)
set(V8_PLATFORM "native") # set(V8_PLATFORM "native")
set(V8_BIN_DIR "${V8_DIR}/out/${V8_PLATFORM}") # set(V8_BIN_DIR "${V8_DIR}/out/${V8_PLATFORM}")
set(ICU_BIN_DIR "${V8_BIN_DIR}") # set(ICU_BIN_DIR "${V8_BIN_DIR}")
if (${CMAKE_SYSTEM_NAME} MATCHES "Linux") # if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
set(V8_BIN_DIR "${V8_BIN_DIR}/obj.target/tools/gyp") # set(V8_BIN_DIR "${V8_BIN_DIR}/obj.target/tools/gyp")
set(ICU_BIN_DIR "${ICU_BIN_DIR}/obj.target/third_party/icu") # set(ICU_BIN_DIR "${ICU_BIN_DIR}/obj.target/third_party/icu")
endif () # endif ()
else () # else ()
message(ERROR "Not implemented for your OS") # message(ERROR "Not implemented for your OS")
endif () # endif ()
include(ExternalProject) # include(ExternalProject)
set (V8_BUILD_COMMAND $(MAKE) -f Makefile-v8 strictaliasing=off # set (V8_BUILD_COMMAND $(MAKE) -f Makefile-v8 strictaliasing=off
snapshot=off werror=no "${V8_PLATFORM}" CC="${CMAKE_C_COMPILER}" # snapshot=off werror=no "${V8_PLATFORM}" CC="${CMAKE_C_COMPILER}"
CXX="${CMAKE_CXX_COMPILER}" PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE} # CXX="${CMAKE_CXX_COMPILER}" PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}
CXXFLAGS=${CMAKE_CXX_FLAGS}) # CXXFLAGS=${CMAKE_CXX_FLAGS})
if (APPLE AND CMAKE_COMPILER_IS_CLANG) # if (APPLE AND CMAKE_COMPILER_IS_CLANG)
set(V8_BUILD_COMMAND ${V8_BUILD_COMMAND} LDFLAGS=-stdlib=libc++ CXXFLAGS=-stdlib=libc++) # set(V8_BUILD_COMMAND ${V8_BUILD_COMMAND} LDFLAGS=-stdlib=libc++ CXXFLAGS=-stdlib=libc++)
endif () # endif ()
set (V8_COMPILE_ARGS -C ${V8_TARGET_DIR} -f Makefile.${V8_TARGET_ARCH} BUILDTYPE=Release builddir=${V8_TARGET_DIR}/${V8_TARGET_ARCH} VERBOSE=1 V=1 CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER}) # set (V8_COMPILE_ARGS -C ${V8_TARGET_DIR} -f Makefile.${V8_TARGET_ARCH} BUILDTYPE=Release builddir=${V8_TARGET_DIR}/${V8_TARGET_ARCH} VERBOSE=1 V=1 CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER})
#set(RUN_V8_GYP "PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE};\ ${PYTHON_EXECUTABLE}") # #set(RUN_V8_GYP "PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE};\ ${PYTHON_EXECUTABLE}")
set(RUN_V8_GYP "${PYTHON_EXECUTABLE}") # set(RUN_V8_GYP "${PYTHON_EXECUTABLE}")
#-------------------------------------------------------------------------------- # #--------------------------------------------------------------------------------
get_cmake_property(_variableNames VARIABLES) # get_cmake_property(_variableNames VARIABLES)
foreach (_variableName ${_variableNames}) # foreach (_variableName ${_variableNames})
message(STATUS "${_variableName}=${${_variableName}}") # message(STATUS "${_variableName}=${${_variableName}}")
endforeach () # endforeach ()
#-------------------------------------------------------------------------------- # #--------------------------------------------------------------------------------
if (NOT USE_PRECOMPILED_V8) # if (NOT USE_PRECOMPILED_V8)
ExternalProject_Add(v8_build # ExternalProject_Add(v8_build
BUILD_IN_SOURCE TRUE # BUILD_IN_SOURCE TRUE
SOURCE_DIR "${V8_DIR}" # SOURCE_DIR "${V8_DIR}"
CONFIGURE_COMMAND ${RUN_V8_GYP} ${V8_GYP_ARGS} # CONFIGURE_COMMAND ${RUN_V8_GYP} ${V8_GYP_ARGS}
BUILD_COMMAND ${MAKE} ${V8_COMPILE_ARGS} # BUILD_COMMAND ${MAKE} ${V8_COMPILE_ARGS}
INSTALL_COMMAND "") # INSTALL_COMMAND "")
endif () # endif ()
import_target(v8_base v8_build # import_target(v8_base v8_build
"${V8_DIR}/include" # "${V8_DIR}/include"
"${V8_BIN_DIR}/libv8_base.a" # "${V8_BIN_DIR}/libv8_base.a"
) # )
import_target(v8_libbase v8_build # import_target(v8_libbase v8_build
"${V8_DIR}/include" # "${V8_DIR}/include"
"${V8_BIN_DIR}/libv8_libbase.a" # "${V8_BIN_DIR}/libv8_libbase.a"
) # )
import_target(v8_libplatform v8_build # import_target(v8_libplatform v8_build
"${V8_DIR}/include" # "${V8_DIR}/include"
"${V8_BIN_DIR}/libv8_libplatform.a" # "${V8_BIN_DIR}/libv8_libplatform.a"
) # )
import_target(v8_nosnapshot v8_build # import_target(v8_nosnapshot v8_build
"${V8_DIR}/include" # "${V8_DIR}/include"
"${V8_BIN_DIR}/libv8_nosnapshot.a" # "${V8_BIN_DIR}/libv8_nosnapshot.a"
) # )
import_target(v8_snapshot v8_build # import_target(v8_snapshot v8_build
"${V8_DIR}/include" # "${V8_DIR}/include"
"${V8_BIN_DIR}/libv8_snapshot.a" # "${V8_BIN_DIR}/libv8_snapshot.a"
) # )
import_target(icu_uc v8_build # import_target(icu_uc v8_build
"${V8_DIR}/third_party/icu/source/common;${V8_DIR}/third_party/icu/source/io;${V8_DIR}/third_party/icu/source/i18n" # "${V8_DIR}/third_party/icu/source/common;${V8_DIR}/third_party/icu/source/io;${V8_DIR}/third_party/icu/source/i18n"
"${ICU_BIN_DIR}/libicuuc.a" # "${ICU_BIN_DIR}/libicuuc.a"
) # )
import_target(icu_data v8_build # import_target(icu_data v8_build
"${V8_DIR}/third_party/icu/source/common;${V8_DIR}/third_party/icu/source/io;${V8_DIR}/third_party/icu/source/i18n" # "${V8_DIR}/third_party/icu/source/common;${V8_DIR}/third_party/icu/source/io;${V8_DIR}/third_party/icu/source/i18n"
"${ICU_BIN_DIR}/libicudata.a" # "${ICU_BIN_DIR}/libicudata.a"
) # )
import_target(icu_i18n v8_build # import_target(icu_i18n v8_build
"${V8_DIR}/third_party/icu/source/common;${V8_DIR}/third_party/icu/source/io;${V8_DIR}/third_party/icu/source/i18n" # "${V8_DIR}/third_party/icu/source/common;${V8_DIR}/third_party/icu/source/io;${V8_DIR}/third_party/icu/source/i18n"
"${ICU_BIN_DIR}/libicui18n.a" # "${ICU_BIN_DIR}/libicui18n.a"
) # )