Skip to content

Commit 1fdd623

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 ae97aa5 commit 1fdd623

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/
@@ -43,9 +51,8 @@ ExternalProject_Add(hostjerry
4351
# can not be represented correctly in the JerryScript engine
4452
# currently.
4553
-DJERRY_SYSTEM_ALLOCATOR=OFF
54+
BUILD_BYPRODUCTS ${JERRY_HOST_BUILD_BYPRODUCTS}
4655
)
47-
set(JERRY_HOST_SNAPSHOT
48-
${CMAKE_BINARY_DIR}/${DEPS_HOST_JERRY}/bin/jerry-snapshot)
4956
add_executable(jerry-snapshot IMPORTED)
5057
add_dependencies(jerry-snapshot hostjerry)
5158
set_property(TARGET jerry-snapshot PROPERTY
@@ -116,6 +123,22 @@ separate_arguments(EXTRA_JERRY_CMAKE_PARAMS)
116123
build_lib_name(JERRY_CORE_NAME jerry-core)
117124
build_lib_name(JERRY_LIBM_NAME jerry-libm)
118125
build_lib_name(JERRY_EXT_NAME jerry-ext)
126+
build_lib_name(JERRY_PORT_DEFAULT_NAME jerry-port-default)
127+
build_lib_name(JERRY_PORT_DEFAULT_MINIMAL_NAME jerry-port-default-minimal)
128+
129+
set(JERRY_LIB_BUILD_BYPRODUCTS
130+
${CMAKE_BINARY_DIR}/lib/${JERRY_CORE_NAME}
131+
${CMAKE_BINARY_DIR}/lib/${JERRY_LIBM_NAME}
132+
${CMAKE_BINARY_DIR}/lib/${JERRY_EXT_NAME}
133+
)
134+
135+
if(NOT "${TARGET_OS}" MATCHES "NUTTX|TIZENRT")
136+
list(APPEND JERRY_LIB_BUILD_BYPRODUCTS
137+
${CMAKE_BINARY_DIR}/lib/${JERRY_PORT_DEFAULT_NAME}
138+
${CMAKE_BINARY_DIR}/lib/${JERRY_PORT_DEFAULT_MINIMAL_NAME}
139+
)
140+
endif()
141+
119142

120143
set(DEPS_LIB_JERRY deps/jerry)
121144
set(DEPS_LIB_JERRY_SRC ${ROOT_DIR}/${DEPS_LIB_JERRY})
@@ -144,13 +167,11 @@ ExternalProject_Add(libjerry
144167
-DENABLE_LTO=${ENABLE_LTO}
145168
${DEPS_LIB_JERRY_ARGS}
146169
${EXTRA_JERRY_CMAKE_PARAMS}
170+
BUILD_BYPRODUCTS ${JERRY_LIB_BUILD_BYPRODUCTS}
147171
)
148172

149173
set_property(DIRECTORY APPEND PROPERTY
150-
ADDITIONAL_MAKE_CLEAN_FILES
151-
${CMAKE_BINARY_DIR}/lib/${JERRY_CORE_NAME}
152-
${CMAKE_BINARY_DIR}/lib/${JERRY_LIBM_NAME}
153-
${CMAKE_BINARY_DIR}/lib/${JERRY_EXT_NAME}
174+
ADDITIONAL_MAKE_CLEAN_FILES ${JERRY_LIB_BUILD_BYPRODUCTS}
154175
)
155176

156177
# define external jerry-core target
@@ -172,13 +193,6 @@ set_property(TARGET jerry-ext PROPERTY
172193
IMPORTED_LOCATION ${CMAKE_BINARY_DIR}/lib/${JERRY_EXT_NAME})
173194

174195
if(NOT "${TARGET_OS}" MATCHES "NUTTX|TIZENRT")
175-
build_lib_name(JERRY_PORT_NAME jerry-port)
176-
build_lib_name(JERRY_PORT_DEFAULT_NAME jerry-port-default)
177-
set_property(DIRECTORY APPEND PROPERTY
178-
ADDITIONAL_MAKE_CLEAN_FILES
179-
${CMAKE_BINARY_DIR}/lib/${JERRY_PORT_NAME}
180-
)
181-
182196
# define external jerry-port-default target
183197
add_library(jerry-port-default STATIC IMPORTED)
184198
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)