Skip to content

Commit 48d4442

Browse files
committed
Fix building iotjs with ninja+MSVC
Testing MSVC generator and setup CONFIG_TYPE properly Add BUILD_BYPRODUCTS to ExternalProject_Add for building with Ninja IoT.js-DCO-1.0-Signed-off-by: Yonggang Luo [email protected]
1 parent 18ed5a0 commit 48d4442

File tree

5 files changed

+43
-17
lines changed

5 files changed

+43
-17
lines changed

CMakeLists.txt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,13 @@ if(NOT DEFINED TARGET_OS)
2626
"TARGET_OS not specified, using '${TARGET_OS}' from CMAKE_SYSTEM_NAME")
2727
endif()
2828

29+
if(CMAKE_GENERATOR MATCHES "Visual Studio")
30+
set(CONFIG_TYPE $<$<CONFIG:Debug>:Debug>)
31+
set(CONFIG_TYPE ${CONFIG_TYPE}$<$<CONFIG:Release>:Release>)
32+
set(CONFIG_TYPE ${CONFIG_TYPE}$<$<CONFIG:RelWithDebInfo>:RelWithDebInfo>)
33+
set(CONFIG_TYPE ${CONFIG_TYPE}$<$<CONFIG:MinSizeRel>:MinSizeRel>)
34+
endif()
35+
2936
if(NOT CMAKE_BUILD_TYPE)
3037
message("CMAKE_BUILD_TYPE was not set! Configuring for Debug build!")
3138
set(CMAKE_BUILD_TYPE Debug)
@@ -69,7 +76,6 @@ endmacro()
6976

7077
if(CMAKE_C_COMPILER_ID MATCHES "MSVC")
7178
set(USING_MSVC 1)
72-
set(CONFIG_TYPE $<$<CONFIG:Debug>:Debug>$<$<CONFIG:Release>:Release>)
7379
# disable warning C4820: 'x' bytes padding added after construct 'membername'
7480
iotjs_add_compile_flags(-wd4820)
7581
# disable warning C4668: 'symbol' is not defined as preprocessor macro,

cmake/http-parser.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ ExternalProject_Add(http-parser
3636
-DOS=${TARGET_OS}
3737
${HTTPPARSER_NUTTX_ARG}
3838
-DENABLE_MEMORY_CONSTRAINTS=ON
39+
BUILD_BYPRODUCTS ${CMAKE_BINARY_DIR}/lib/${HTTPPARSER_NAME}
3940
)
4041
add_library(libhttp-parser STATIC IMPORTED)
4142
add_dependencies(libhttp-parser http-parser)

cmake/jerry.cmake

Lines changed: 27 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,14 @@
1414

1515
# Host jerry for snapshot generation
1616
set(DEPS_HOST_JERRY deps/jerry-host)
17+
18+
set(JERRY_HOST_SNAPSHOT
19+
${CMAKE_BINARY_DIR}/${DEPS_HOST_JERRY}/bin/jerry-snapshot)
20+
21+
set(JERRY_HOST_BUILD_BYPRODUCTS
22+
${JERRY_HOST_SNAPSHOT}
23+
)
24+
1725
ExternalProject_Add(hostjerry
1826
PREFIX ${DEPS_HOST_JERRY}
1927
SOURCE_DIR ${ROOT_DIR}/deps/jerry/
@@ -44,9 +52,8 @@ ExternalProject_Add(hostjerry
4452
# can not be represented correctly in the JerryScript engine
4553
# currently.
4654
-DJERRY_SYSTEM_ALLOCATOR=OFF
55+
BUILD_BYPRODUCTS ${JERRY_HOST_BUILD_BYPRODUCTS}
4756
)
48-
set(JERRY_HOST_SNAPSHOT
49-
${CMAKE_BINARY_DIR}/${DEPS_HOST_JERRY}/bin/jerry-snapshot)
5057
add_executable(jerry-snapshot IMPORTED)
5158
add_dependencies(jerry-snapshot hostjerry)
5259
set_property(TARGET jerry-snapshot PROPERTY
@@ -118,6 +125,22 @@ separate_arguments(EXTRA_JERRY_CMAKE_PARAMS)
118125
build_lib_name(JERRY_CORE_NAME jerry-core)
119126
build_lib_name(JERRY_LIBM_NAME jerry-math)
120127
build_lib_name(JERRY_EXT_NAME jerry-ext)
128+
build_lib_name(JERRY_PORT_DEFAULT_NAME jerry-port-default)
129+
build_lib_name(JERRY_PORT_DEFAULT_MINIMAL_NAME jerry-port-default-minimal)
130+
131+
set(JERRY_LIB_BUILD_BYPRODUCTS
132+
${CMAKE_BINARY_DIR}/lib/${JERRY_CORE_NAME}
133+
${CMAKE_BINARY_DIR}/lib/${JERRY_LIBM_NAME}
134+
${CMAKE_BINARY_DIR}/lib/${JERRY_EXT_NAME}
135+
)
136+
137+
if(NOT "${TARGET_OS}" MATCHES "NUTTX|TIZENRT")
138+
list(APPEND JERRY_LIB_BUILD_BYPRODUCTS
139+
${CMAKE_BINARY_DIR}/lib/${JERRY_PORT_DEFAULT_NAME}
140+
${CMAKE_BINARY_DIR}/lib/${JERRY_PORT_DEFAULT_MINIMAL_NAME}
141+
)
142+
endif()
143+
121144

122145
set(DEPS_LIB_JERRY deps/jerry)
123146
set(DEPS_LIB_JERRY_SRC ${ROOT_DIR}/${DEPS_LIB_JERRY})
@@ -146,13 +169,11 @@ ExternalProject_Add(libjerry
146169
-DENABLE_LTO=${ENABLE_LTO}
147170
${DEPS_LIB_JERRY_ARGS}
148171
${EXTRA_JERRY_CMAKE_PARAMS}
172+
BUILD_BYPRODUCTS ${JERRY_LIB_BUILD_BYPRODUCTS}
149173
)
150174

151175
set_property(DIRECTORY APPEND PROPERTY
152-
ADDITIONAL_MAKE_CLEAN_FILES
153-
${CMAKE_BINARY_DIR}/lib/${JERRY_CORE_NAME}
154-
${CMAKE_BINARY_DIR}/lib/${JERRY_LIBM_NAME}
155-
${CMAKE_BINARY_DIR}/lib/${JERRY_EXT_NAME}
176+
ADDITIONAL_MAKE_CLEAN_FILES ${JERRY_LIB_BUILD_BYPRODUCTS}
156177
)
157178

158179
# define external jerry-core target
@@ -174,13 +195,6 @@ set_property(TARGET jerry-ext PROPERTY
174195
IMPORTED_LOCATION ${CMAKE_BINARY_DIR}/lib/${JERRY_EXT_NAME})
175196

176197
if(NOT "${TARGET_OS}" MATCHES "NUTTX|TIZENRT")
177-
build_lib_name(JERRY_PORT_NAME jerry-port)
178-
build_lib_name(JERRY_PORT_DEFAULT_NAME jerry-port-default)
179-
set_property(DIRECTORY APPEND PROPERTY
180-
ADDITIONAL_MAKE_CLEAN_FILES
181-
${CMAKE_BINARY_DIR}/lib/${JERRY_PORT_NAME}
182-
)
183-
184198
# define external jerry-port-default target
185199
add_library(jerry-port-default STATIC IMPORTED)
186200
add_dependencies(jerry-port-default libjerry)

cmake/libtuv.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ ExternalProject_Add(libtuv
4444
-DBUILDAPIEMULTESTER=NO
4545
-DTARGET_SYSTEMROOT=${TARGET_SYSTEMROOT}
4646
-DTARGET_BOARD=${TARGET_BOARD}
47+
BUILD_BYPRODUCTS ${CMAKE_BINARY_DIR}/lib/${LIBTUV_NAME}
4748
)
4849
add_library(tuv STATIC IMPORTED)
4950
add_dependencies(tuv libtuv)

cmake/mbedtls.cmake

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,11 @@ else()
4848
build_lib_name(MBED_X509_NAME mbedx509)
4949
build_lib_name(MBED_TLS_NAME mbedtls)
5050
build_lib_name(MBED_CRYPTO_NAME mbedcrypto)
51+
set(MBEDTLS_BUILD_BYPRODUCTS
52+
${ARCHIVE_DIR}/${MBED_X509_NAME}
53+
${ARCHIVE_DIR}/${MBED_TLS_NAME}
54+
${ARCHIVE_DIR}/${MBED_CRYPTO_NAME}
55+
)
5156
ExternalProject_Add(mbedtls
5257
PREFIX ${DEPS_MBEDTLS}
5358
SOURCE_DIR ${DEPS_MBEDTLS_SRC}
@@ -66,6 +71,7 @@ else()
6671
-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
6772
-DENABLE_PROGRAMS=OFF
6873
-DENABLE_TESTING=OFF
74+
BUILD_BYPRODUCTS ${MBEDTLS_BUILD_BYPRODUCTS}
6975
)
7076

7177
# define external mbedtls target
@@ -88,9 +94,7 @@ else()
8894

8995
set_property(DIRECTORY APPEND PROPERTY
9096
ADDITIONAL_MAKE_CLEAN_FILES
91-
${ARCHIVE_DIR}/${MBED_X509_NAME}
92-
${ARCHIVE_DIR}/${MBED_TLS_NAME}
93-
${ARCHIVE_DIR}/${MBED_CRYPTO_NAME}
97+
${MBEDTLS_BUILD_BYPRODUCTS}
9498
)
9599

96100
set(MBEDTLS_LIBS libmbedtls libmbedx509 libmbedcrypto)

0 commit comments

Comments
 (0)