Skip to content

Commit 2c7529c

Browse files
committedJun 27, 2022
build(cmakelists.txt): n-api version fixed in build script
1 parent 15b1307 commit 2c7529c

File tree

1 file changed

+46
-50
lines changed

1 file changed

+46
-50
lines changed
 

‎CMakeLists.txt

+46-50
Original file line numberDiff line numberDiff line change
@@ -13,74 +13,76 @@ set(CMAKE_VERBOSE_MAKEFILE ON)
1313

1414
# project
1515
execute_process(COMMAND node -p "require('./package.json').version"
16-
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
17-
OUTPUT_VARIABLE VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
16+
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
17+
OUTPUT_VARIABLE VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
1818
project(sapnwrfc)
1919
set(PROJECT_VERSION ${VERSION})
2020

2121
# node platform
2222
execute_process(COMMAND node -p "process.platform"
23-
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
24-
OUTPUT_VARIABLE NODE_PLATFORM OUTPUT_STRIP_TRAILING_WHITESPACE)
23+
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
24+
OUTPUT_VARIABLE NODE_PLATFORM OUTPUT_STRIP_TRAILING_WHITESPACE)
2525

2626
# node version
27-
execute_process(COMMAND node -v WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} OUTPUT_VARIABLE NODE_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE )
27+
execute_process(COMMAND node -v WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} OUTPUT_VARIABLE NODE_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
2828

2929
# node abi version
3030
execute_process(COMMAND node -p "process.versions.modules"
31-
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
32-
OUTPUT_VARIABLE NODE_ABI_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
31+
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
32+
OUTPUT_VARIABLE NODE_ABI_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
3333

3434
# N-API version
35-
execute_process(COMMAND node -p "require('./package.json').binary.napi_versions[0]"
36-
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
37-
OUTPUT_VARIABLE NAPI_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
35+
execute_process(COMMAND node -p "process.versions.napi"
36+
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
37+
OUTPUT_VARIABLE NAPI_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
3838
add_compile_definitions(NAPI_VERSION=${NAPI_VERSION})
3939

4040
# N-API headers
4141
execute_process(COMMAND node -p "require('node-addon-api').include"
42-
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
43-
OUTPUT_VARIABLE NAPI_INCLUDE_DIR
44-
OUTPUT_STRIP_TRAILING_WHITESPACE )
42+
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
43+
OUTPUT_VARIABLE NAPI_INCLUDE_DIR
44+
OUTPUT_STRIP_TRAILING_WHITESPACE)
4545
string(REPLACE "\"" "" NAPI_INCLUDE_DIR ${NAPI_INCLUDE_DIR})
4646

4747
# NodeJS headers
48-
if (NOT DEFINED ENV{NODE_HEADERS_INCLUDE_DIR})
49-
if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
50-
execute_process(COMMAND cmd /c "npm -g prefix"
51-
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
52-
OUTPUT_VARIABLE NODE_HEADERS_INCLUDE_DIR
53-
OUTPUT_STRIP_TRAILING_WHITESPACE )
54-
else()
55-
execute_process(COMMAND npm -g prefix
56-
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
57-
OUTPUT_VARIABLE NODE_HEADERS_INCLUDE_DIR
58-
OUTPUT_STRIP_TRAILING_WHITESPACE )
59-
endif()
48+
if(NOT DEFINED ENV{NODE_HEADERS_INCLUDE_DIR})
49+
if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
50+
execute_process(COMMAND cmd /c "npm -g prefix"
51+
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
52+
OUTPUT_VARIABLE NODE_HEADERS_INCLUDE_DIR
53+
OUTPUT_STRIP_TRAILING_WHITESPACE)
54+
else()
55+
execute_process(COMMAND npm -g prefix
56+
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
57+
OUTPUT_VARIABLE NODE_HEADERS_INCLUDE_DIR
58+
OUTPUT_STRIP_TRAILING_WHITESPACE)
59+
endif()
60+
6061
string(CONCAT NODE_HEADERS_INCLUDE_DIR ${NODE_HEADERS_INCLUDE_DIR} "/include")
6162

62-
if (NOT EXISTS "${NODE_HEADERS_INCLUDE_DIR}")
63+
if(NOT EXISTS "${NODE_HEADERS_INCLUDE_DIR}")
6364
set(NODE_HEADERS_FILENAME "node-${NODE_VERSION}-headers.tar.gz")
6465
set(NODE_HEADERS_DOWNLD_PATH ${CMAKE_CURRENT_BINARY_DIR}/${NODE_HEADERS_FILENAME})
6566
message("Downloading ${NODE_HEADERS_FILENAME} to ${NODE_HEADERS_DOWNLD_PATH} ...")
66-
file(DOWNLOAD "https://nodejs.org/download/release/${NODE_VERSION}/${NODE_HEADERS_FILENAME}" "${NODE_HEADERS_DOWNLD_PATH}" ) # SHOW_PROGRESS)
67+
file(DOWNLOAD "https://nodejs.org/download/release/${NODE_VERSION}/${NODE_HEADERS_FILENAME}" "${NODE_HEADERS_DOWNLD_PATH}") # SHOW_PROGRESS)
6768

6869
file(ARCHIVE_EXTRACT INPUT ${NODE_HEADERS_DOWNLD_PATH} VERBOSE)
6970
file(REMOVE ${NODE_HEADERS_DOWNLD_PATH})
7071
file(RENAME "${CMAKE_CURRENT_BINARY_DIR}/node-${NODE_VERSION}/include" "${NODE_HEADERS_INCLUDE_DIR}")
7172
file(REMOVE_RECURSE "${CMAKE_CURRENT_BINARY_DIR}/node-${NODE_VERSION}")
7273
endif()
73-
else ()
74+
else()
7475
set(NODE_HEADERS_INCLUDE_DIR $ENV{NODE_HEADERS_INCLUDE_DIR})
7576
endif()
7677

7778
# build and binding path
78-
string(CONCAT ADDON_BINDING_PATH "node-v" ${NODE_ABI_VERSION} "-" ${NODE_PLATFORM} "-" ${NODE_ARCH} )
79+
string(CONCAT ADDON_BINDING_PATH "node-v" ${NODE_ABI_VERSION} "-" ${NODE_PLATFORM} "-" ${NODE_ARCH})
7980
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/lib/binding/)
8081

8182
# sapnwrfc dependencies
8283
set(SAPNWRFC_INCLUDE_DIR $ENV{SAPNWRFC_HOME}/include)
8384
set(SAPNWRFC_LIB_DIR $ENV{SAPNWRFC_HOME}/lib)
85+
8486
if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
8587
set(SAPNWRFC_LIB_FILES sapnwrfc.lib libsapucum.lib)
8688
else()
@@ -91,18 +93,17 @@ endif()
9193
add_library(${PROJECT_NAME} SHARED src/Client.cc src/nwrfcsdk.cc src/Pool.cc src/Throughput.cc src/Server.cc src/addon.cc)
9294

9395
# build path ignored on Windows, copy after build
94-
if ( MSVC )
96+
if(MSVC)
9597
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
9698
COMMAND "${CMAKE_COMMAND}" -E copy
97-
"$<TARGET_FILE:${PROJECT_NAME}>"
98-
"${CMAKE_LIBRARY_OUTPUT_DIRECTORY}\\$<TARGET_FILE_NAME:${PROJECT_NAME}>"
99-
COMMENT "Copying to output directory" ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
100-
endif ( MSVC )
99+
"$<TARGET_FILE:${PROJECT_NAME}>"
100+
"${CMAKE_LIBRARY_OUTPUT_DIRECTORY}\\$<TARGET_FILE_NAME:${PROJECT_NAME}>"
101+
COMMENT "Copying to output directory" ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
102+
endif(MSVC)
101103

102104
#
103105
# build
104106
#
105-
106107
message("N-API version: ${NAPI_VERSION} ${NODE_HEADERS_INCLUDE_DIR}")
107108

108109
# All platforms
@@ -118,9 +119,7 @@ target_compile_definitions(${PROJECT_NAME} PUBLIC
118119
NAPI_CPP_EXCEPTIONS)
119120

120121
# target_compile_options(${PROJECT_NAME} PUBLIC -fexceptions)
121-
122122
if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
123-
124123
# show SAP NWRFC SDK version
125124
execute_process(COMMAND bash ${CMAKE_CURRENT_SOURCE_DIR}/ci/utils/nwrfcsdk-version-linux.sh OUTPUT_VARIABLE SAPNWRFCSDK_VERSION)
126125
message("SAP NWRFC SDK: " ${SAPNWRFCSDK_VERSION})
@@ -133,7 +132,6 @@ if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
133132
__NO_MATH_INLINES)
134133

135134
elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
136-
137135
# show SAP NWRFC SDK version
138136
execute_process(
139137
COMMAND "${CMAKE_CURRENT_SOURCE_DIR}\\ci\\utils\\nwrfcsdk-version.bat"
@@ -158,7 +156,8 @@ elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
158156
SAPonNT
159157
_CRT_NON_CONFORMING_SWPRINTFS
160158
_CRT_SECURE_NO_DEPRECATE
161-
#_CRT_SECURE_NO_WARNINGS
159+
160+
# _CRT_SECURE_NO_WARNINGS
162161
_CRT_NONSTDC_NO_DEPRECATE
163162
_AFXDLL
164163
WIN32
@@ -169,14 +168,14 @@ elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
169168
# https://docs.microsoft.com/en-us/cpp/build/reference/linker-options?view=vs-2019
170169
target_link_options(${PROJECT_NAME} PUBLIC
171170
/NXCOMPAT
172-
/SWAPRUN:NET
173-
/OPT:REF
174-
/NOLOGO
171+
/SWAPRUN:NET
172+
/OPT:REF
173+
/NOLOGO
175174
/LTCG
176175
)
177176

178-
if (${NODE_ARCH} STREQUAL "ia32")
179-
target_compile_definitions(${PROJECT_NAME} PUBLIC _X86_ )
177+
if(${NODE_ARCH} STREQUAL "ia32")
178+
target_compile_definitions(${PROJECT_NAME} PUBLIC _X86_)
180179

181180
target_link_options(${PROJECT_NAME} PUBLIC
182181
-STACK:0x800000
@@ -185,7 +184,7 @@ elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
185184
-LARGEADDRESSAWARE
186185
)
187186
else()
188-
target_compile_definitions(${PROJECT_NAME} PUBLIC WIN64 _AMD64_ )
187+
target_compile_definitions(${PROJECT_NAME} PUBLIC WIN64 _AMD64_)
189188

190189
target_link_options(${PROJECT_NAME} PUBLIC
191190
-STACK:0x2000000
@@ -195,20 +194,17 @@ elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
195194
)
196195
endif()
197196

198-
199197
elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
200-
201198
# show SAP NWRFC SDK version
202199
execute_process(COMMAND bash "${CMAKE_CURRENT_SOURCE_DIR}/ci/utils/nwrfcsdk-version-darwin.sh"
203-
OUTPUT_VARIABLE SAPNWRFCSDK_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE )
200+
OUTPUT_VARIABLE SAPNWRFCSDK_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
204201
message("SAP NWRFC SDK: " ${SAPNWRFCSDK_VERSION})
205202

206203
target_compile_options(${PROJECT_NAME} PUBLIC -stdlib=libc++ -std=c++0x -Wall -mmacosx-version-min=10.10 -fvisibility=hidden)
207204

208205
add_compile_definitions(
209206
SAPonDARW
210207
__NO_MATH_INLINES)
211-
212208
endif()
213209

214210
# set .node extension without any "lib" prefix
@@ -217,7 +213,7 @@ set_target_properties(${PROJECT_NAME} PROPERTIES
217213
PREFIX ""
218214
SUFFIX ".node")
219215

220-
set (${PROJECT_NAME}_USE_STATIC_LIBS OFF)
216+
set(${PROJECT_NAME}_USE_STATIC_LIBS OFF)
221217
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMake")
222218

223219
# build target

0 commit comments

Comments
 (0)
Please sign in to comment.