Skip to content

Commit fa97473

Browse files
committed
Fixes building with new version cmake
iotjs_add_flags works on list instead of string. Also fixes flags not support MSVC IoT.js-DCO-1.0-Signed-off-by: Yonggang Luo luoyonggang@gmail.com
1 parent 7fdafb0 commit fa97473

File tree

3 files changed

+25
-22
lines changed

3 files changed

+25
-22
lines changed

CMakeLists.txt

+3-4
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
cmake_minimum_required(VERSION 2.8)
15+
cmake_minimum_required(VERSION 3.5)
1616
include(CheckCCompilerFlag)
1717

1818
project(IOTJS C)
@@ -88,8 +88,7 @@ if("${CMAKE_BUILD_TYPE}" STREQUAL "Debug")
8888
if(HAS_NO_PIE AND NOT "${TARGET_OS}" STREQUAL "darwin")
8989
iotjs_add_link_flags(-no-pie)
9090
endif()
91-
else()
92-
91+
elseif(HAS_NO_PIE)
9392
iotjs_add_compile_flags(-fPIE)
9493
if("${TARGET_OS}" STREQUAL "darwin")
9594
iotjs_add_link_flags(-Wl,-pie)
@@ -98,7 +97,7 @@ else()
9897
endif()
9998
endif()
10099

101-
if (CREATE_SHARED_LIB)
100+
if (CREATE_SHARED_LIB AND NOT USING_MSVC)
102101
iotjs_add_compile_flags(-fPIC)
103102
endif()
104103

cmake/iotjs.cmake

+13-18
Original file line numberDiff line numberDiff line change
@@ -448,11 +448,11 @@ set(IOTJS_INCLUDE_DIRS
448448

449449
if(NOT BUILD_LIB_ONLY)
450450
if("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin")
451-
iotjs_add_link_flags("-Xlinker -map -Xlinker iotjs.map")
451+
iotjs_add_link_flags(-Wl,-map,iotjs.map)
452452
elseif(USING_MSVC)
453-
iotjs_add_link_flags("/MAP:iotjs.map")
453+
iotjs_add_link_flags("-MAP:iotjs.map")
454454
else()
455-
iotjs_add_link_flags("-Xlinker -Map -Xlinker iotjs.map")
455+
iotjs_add_link_flags(-Xlinker -Map=iotjs.map)
456456
endif()
457457
endif()
458458

@@ -515,22 +515,17 @@ else()
515515
file(READ "${IOTJS_SOURCE_DIR}/napi/node_symbols.txt" NODE_SYMBOLS)
516516
string(REGEX REPLACE "[\r|\n]" ";" NODE_SYMBOLS "${NODE_SYMBOLS}")
517517

518-
if(USING_MSVC)
519-
set(NODE_SYMBOL_SEPARATOR " /INCLUDE:")
520-
if("${TARGET_ARCH}" STREQUAL "i686")
521-
set(NODE_SYMBOL_SEPARATOR "${NODE_SYMBOL_SEPARATOR}_")
522-
endif()
523-
else()
524-
set(NODE_SYMBOLS_LINK_FLAGS "-Wl")
525-
set(NODE_SYMBOL_SEPARATOR ",-u,")
526-
endif()
527-
528518
foreach(NODE_SYMBOL ${NODE_SYMBOLS})
529-
set(NODE_SYMBOLS_LINK_FLAGS
530-
"${NODE_SYMBOLS_LINK_FLAGS}${NODE_SYMBOL_SEPARATOR}${NODE_SYMBOL}")
531-
endforeach()
532-
533-
iotjs_add_link_flags(${NODE_SYMBOLS_LINK_FLAGS})
519+
if(USING_MSVC)
520+
if("${TARGET_ARCH}" STREQUAL "i686")
521+
iotjs_add_link_flags("/INCLUDE:_${NODE_SYMBOL}")
522+
else()
523+
iotjs_add_link_flags("/INCLUDE:${NODE_SYMBOL}")
524+
endif()
525+
else()
526+
iotjs_add_link_flags("-Wl,-u,${NODE_SYMBOL}")
527+
endif()
528+
endforeach()
534529
endif()
535530
endif(CREATE_SHARED_LIB)
536531

cmake/jerry.cmake

+9
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,22 @@ cmake_minimum_required(VERSION 2.8)
1616

1717
# Host jerry for snapshot generation
1818
set(DEPS_HOST_JERRY deps/jerry-host)
19+
if ("${CMAKE_HOST_SYSTEM_NAME}" STREQUAL "Linux")
20+
set(JERRY_HOST_C_FLAGS_INIT "-Wno-error=maybe-uninitialized")
21+
endif()
22+
23+
if (USING_MSVC)
24+
set(JERRY_HOST_C_FLAGS_INIT "-DWIN32")
25+
endif()
26+
1927
ExternalProject_Add(hostjerry
2028
PREFIX ${DEPS_HOST_JERRY}
2129
SOURCE_DIR ${ROOT_DIR}/deps/jerry/
2230
BUILD_IN_SOURCE 0
2331
BINARY_DIR ${DEPS_HOST_JERRY}
2432
CMAKE_ARGS
2533
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
34+
-DCMAKE_C_FLAGS=${JERRY_HOST_C_FLAGS_INIT}
2635
-DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/${DEPS_HOST_JERRY}
2736
-DENABLE_ALL_IN_ONE=ON
2837
-DENABLE_LTO=${ENABLE_LTO}

0 commit comments

Comments
 (0)