blob: 2646ecacd6861c948938e73d3dd2e62502624476 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
cmake_minimum_required(VERSION 3.4)
project(buildvm C)
set(EXTRA_COMPILER_FLAGS_FILE ""
CACHE PATH "Location of a file to specify extra compiler flags.")
set(EXTRA_COMPILER_FLAGS "")
if(EXISTS ${EXTRA_COMPILER_FLAGS_FILE})
file(READ ${EXTRA_COMPILER_FLAGS_FILE} EXTRA_COMPILER_FLAGS)
else()
set(EXTRA_COMPILER_FLAGS ${BUILDVM_COMPILER_FLAGS})
endif()
include(CheckTypeSize)
if("${EXTRA_COMPILER_FLAGS}" MATCHES "LUAJIT_ARCH_.*64")
set(TARGET_SIZE_OF_P 8)
else()
set(TARGET_SIZE_OF_P 4)
endif()
set(CXX_ARCH_FLAGS "")
if(NOT (CMAKE_SIZEOF_VOID_P EQUAL ${TARGET_SIZE_OF_P}))
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(CXX_ARCH_FLAGS "-m32")
else()
set(CXX_ARCH_FLAGS "-m64")
endif()
endif()
find_library(LIBM_LIBRARIES NAMES m)
add_executable(buildvm
${LUAJIT_DIR}/src/host/buildvm.c
${LUAJIT_DIR}/src/host/buildvm_asm.c
${LUAJIT_DIR}/src/host/buildvm_fold.c
${LUAJIT_DIR}/src/host/buildvm_lib.c
${LUAJIT_DIR}/src/host/buildvm_peobj.c)
target_compile_options(buildvm PRIVATE
${EXTRA_COMPILER_FLAGS} ${CXX_ARCH_FLAGS})
target_link_libraries(buildvm PRIVATE ${CXX_ARCH_FLAGS})
if(LIBM)
target_link_libraries(buildvm PRIVATE ${LIBM_LIBRARIES})
endif()
target_include_directories(buildvm PRIVATE
${LUAJIT_DIR}/src
${LUAJIT_DIR}/src/host
${CMAKE_BINARY_DIR}
${CMAKE_CURRENT_BINARY_DIR}/..
${CMAKE_CURRENT_BINARY_DIR}/../..
${CMAKE_CURRENT_BINARY_DIR}/../../..
${CMAKE_CURRENT_BINARY_DIR}
)
|