Skip to content

Commit 56d4f95

Browse files
Only install include directory if we target CPP
Do not install DLL import library if we do not target CPP Install CSharp project if we target CSharp Do no more target a particular .NET framework in CSharp projects
1 parent c2697ec commit 56d4f95

4 files changed

Lines changed: 121 additions & 102 deletions

File tree

cmake/fesapiCs.csproj.template

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
<AppDesignerFolder>Properties</AppDesignerFolder>
1111
<RootNamespace>f2i.energisticsStandardsApi</RootNamespace>
1212
<AssemblyName>${CS_LIBRARY_NAME}</AssemblyName>
13-
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
1413
<FileAlignment>512</FileAlignment>
1514
<TargetFrameworkProfile />
1615
</PropertyGroup>

cs/CMakeLists.txt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,3 +65,13 @@ endif ()
6565
#file(TO_NATIVE_PATH "${FESAPI_ROOT_DIR}/cs/src" DOS_STYLE_SOURCE_DIR)
6666
configure_file(${FESAPI_ROOT_DIR}/cmake/fesapiCs.csproj.template ${FESAPI_ROOT_DIR}/cs/fesapiCs.csproj) # Overwrite if different
6767
configure_file(${FESAPI_ROOT_DIR}/cmake/AssemblyInfo.cs ${FESAPI_ROOT_DIR}/cs/Properties/AssemblyInfo.cs) # Overwrite if different
68+
69+
install (
70+
DIRECTORY ${FESAPI_ROOT_DIR}/cs/
71+
DESTINATION ./csProject
72+
PATTERN "bin" EXCLUDE
73+
PATTERN "example" EXCLUDE
74+
PATTERN "obj" EXCLUDE
75+
PATTERN ".gitignore" EXCLUDE
76+
PATTERN "CMakeLists.txt" EXCLUDE
77+
)

cs/example/example.csproj

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
<AppDesignerFolder>Properties</AppDesignerFolder>
1010
<RootNamespace>example</RootNamespace>
1111
<AssemblyName>example</AssemblyName>
12-
<TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>
1312
<FileAlignment>512</FileAlignment>
1413
<TargetFrameworkProfile />
1514
<PublishUrl>publier\</PublishUrl>

src/CMakeLists.txt

Lines changed: 111 additions & 100 deletions
Original file line numberDiff line numberDiff line change
@@ -249,130 +249,141 @@ endif (WITH_PYTHON_WRAPPING)
249249
# Install FesapiCpp library
250250
# ============================================================================
251251

252-
INSTALL (
253-
TARGETS ${CPP_LIBRARY_NAME}
254-
EXPORT FESAPI_TARGETS
255-
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
256-
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
257-
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
258-
)
259-
260-
INSTALL (
261-
EXPORT FESAPI_TARGETS
262-
FILE FesapiCppTargets.cmake
263-
DESTINATION
264-
"${CMAKE_INSTALL_LIBDIR}/cmake/${CPP_LIBRARY_NAME}"
265-
)
252+
# Only install include directory if we target CPP
253+
if (NOT WITH_PYTHON_WRAPPING AND NOT WITH_DOTNET_WRAPPING AND NOT WITH_JAVA_WRAPPING)
254+
INSTALL (
255+
TARGETS ${CPP_LIBRARY_NAME}
256+
EXPORT FESAPI_TARGETS
257+
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
258+
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
259+
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
260+
)
266261

267-
CONFIGURE_FILE(${FESAPI_ROOT_DIR}/cmake/FesapiCppConfig.cmake.in ${FESAPI_BINARY_DIR}/cmake/FesapiCppConfig.cmake @ONLY)
268-
INSTALL(
269-
FILES
270-
"${FESAPI_BINARY_DIR}/cmake/FesapiCppConfig.cmake"
271-
DESTINATION
272-
"${CMAKE_INSTALL_LIBDIR}/cmake/${CPP_LIBRARY_NAME}"
273-
)
262+
INSTALL (
263+
EXPORT FESAPI_TARGETS
264+
FILE FesapiCppTargets.cmake
265+
DESTINATION
266+
"${CMAKE_INSTALL_LIBDIR}/cmake/${CPP_LIBRARY_NAME}"
267+
)
274268

275-
IF (WIN32)
276-
#PDB for debug
269+
CONFIGURE_FILE(${FESAPI_ROOT_DIR}/cmake/FesapiCppConfig.cmake.in ${FESAPI_BINARY_DIR}/cmake/FesapiCppConfig.cmake @ONLY)
270+
INSTALL(
271+
FILES
272+
"${FESAPI_BINARY_DIR}/cmake/FesapiCppConfig.cmake"
273+
DESTINATION
274+
"${CMAKE_INSTALL_LIBDIR}/cmake/${CPP_LIBRARY_NAME}"
275+
)
276+
277+
# namespaces
277278
INSTALL (
278-
FILES $<TARGET_PDB_FILE:${CPP_LIBRARY_NAME}>
279-
CONFIGURATIONS Debug RelWithDebInfo
280-
DESTINATION ${CMAKE_INSTALL_BINDIR}
281-
OPTIONAL
279+
FILES ${FESAPI_ROOT_DIR}/src/nsDefinitions.h ${FESAPI_ROOT_DIR}/src/version_config.h ${FESAPI_ROOT_DIR}/src/MacroDefinitions.h
280+
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/fesapi/
281+
COMPONENT fesapi_headers
282282
)
283-
ENDIF()
284283

285-
# namespaces
286-
INSTALL (
287-
FILES ${FESAPI_ROOT_DIR}/src/nsDefinitions.h ${FESAPI_ROOT_DIR}/src/version_config.h ${FESAPI_ROOT_DIR}/src/MacroDefinitions.h
288-
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/fesapi/
289-
COMPONENT fesapi_headers
290-
)
284+
# proxies headers
285+
INSTALL (
286+
FILES ${FESAPI_PROXIES_HEADERS}
287+
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/fesapi/proxies/
288+
COMPONENT fesapi_headers
289+
)
291290

292-
# proxies headers
293-
INSTALL (
294-
FILES ${FESAPI_PROXIES_HEADERS}
295-
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/fesapi/proxies/
296-
COMPONENT fesapi_headers
297-
)
291+
# common headers
292+
INSTALL (
293+
FILES ${FESAPI_COMMON_HEADERS}
294+
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/fesapi/common
295+
COMPONENT fesapi_headers
296+
)
298297

299-
# common headers
300-
INSTALL (
301-
FILES ${FESAPI_COMMON_HEADERS}
302-
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/fesapi/common
303-
COMPONENT fesapi_headers
304-
)
298+
# EPC headers
299+
INSTALL (
300+
FILES ${FESAPI_EPC_HEADERS}
301+
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/fesapi/epc/
302+
COMPONENT fesapi_headers
303+
)
305304

306-
# EPC headers
307-
INSTALL (
308-
FILES ${FESAPI_EPC_HEADERS}
309-
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/fesapi/epc/
310-
COMPONENT fesapi_headers
311-
)
305+
# RESQML headers
306+
INSTALL (
307+
FILES ${FESAPI_RESQML_2_HEADERS}
308+
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/fesapi/${RESQML_PREFIX_2}/
309+
COMPONENT fesapi_headers
310+
)
312311

313-
# RESQML headers
314-
INSTALL (
315-
FILES ${FESAPI_RESQML_2_HEADERS}
316-
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/fesapi/${RESQML_PREFIX_2}/
317-
COMPONENT fesapi_headers
318-
)
312+
INSTALL (
313+
FILES ${FESAPI_RESQML_2_0_1_HEADERS}
314+
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/fesapi/${RESQML_PREFIX_2_0_1}/
315+
COMPONENT fesapi_headers
316+
)
319317

320-
INSTALL (
321-
FILES ${FESAPI_RESQML_2_0_1_HEADERS}
322-
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/fesapi/${RESQML_PREFIX_2_0_1}/
323-
COMPONENT fesapi_headers
324-
)
318+
if (WITH_RESQML2_2)
319+
INSTALL (
320+
FILES ${FESAPI_RESQML_2_2_HEADERS}
321+
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/fesapi/${RESQML_PREFIX_2_2}/
322+
COMPONENT fesapi_headers
323+
)
324+
endif (WITH_RESQML2_2)
325325

326-
if (WITH_RESQML2_2)
327326
INSTALL (
328-
FILES ${FESAPI_RESQML_2_2_HEADERS}
329-
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/fesapi/${RESQML_PREFIX_2_2}/
327+
FILES ${FESAPI_EML_2_3_HEADERS}
328+
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/fesapi/${EML_PREFIX_2_3}/
330329
COMPONENT fesapi_headers
331330
)
332-
endif (WITH_RESQML2_2)
333331

334-
INSTALL (
335-
FILES ${FESAPI_EML_2_3_HEADERS}
336-
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/fesapi/${EML_PREFIX_2_3}/
337-
COMPONENT fesapi_headers
338-
)
332+
# WITSML headers
333+
INSTALL (
334+
FILES ${FESAPI_WITSML_2_HEADERS}
335+
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/fesapi/${WITSML_PREFIX_2}/
336+
)
339337

340-
# WITSML headers
341-
INSTALL (
342-
FILES ${FESAPI_WITSML_2_HEADERS}
343-
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/fesapi/${WITSML_PREFIX_2}/
344-
)
338+
INSTALL (
339+
FILES ${FESAPI_WITSML_2_1_HEADERS}
340+
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/fesapi/${WITSML_PREFIX_2_1}/
341+
COMPONENT fesapi_headers
342+
)
345343

346-
INSTALL (
347-
FILES ${FESAPI_WITSML_2_1_HEADERS}
348-
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/fesapi/${WITSML_PREFIX_2_1}/
349-
COMPONENT fesapi_headers
350-
)
344+
# PRODML headers
345+
INSTALL (
346+
FILES ${FESAPI_PRODML_2_2_HEADERS}
347+
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/fesapi/${PRODML_PREFIX_2_2}/
348+
COMPONENT fesapi_headers
349+
)
351350

352-
# PRODML headers
353-
INSTALL (
354-
FILES ${FESAPI_PRODML_2_2_HEADERS}
355-
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/fesapi/${PRODML_PREFIX_2_2}/
356-
COMPONENT fesapi_headers
357-
)
351+
# EML headers
352+
INSTALL (
353+
FILES ${FESAPI_EML_2_HEADERS}
354+
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/fesapi/${EML_PREFIX_2}/
355+
COMPONENT fesapi_headers
356+
)
358357

359-
# EML headers
360-
INSTALL (
361-
FILES ${FESAPI_EML_2_HEADERS}
362-
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/fesapi/${EML_PREFIX_2}/
363-
COMPONENT fesapi_headers
364-
)
358+
INSTALL (
359+
FILES ${FESAPI_EML_2_0_HEADERS}
360+
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/fesapi/${EML_PREFIX_2_0}/
361+
COMPONENT fesapi_headers
362+
)
363+
else ()
364+
# Do not install DLL import libraries (on all Windows-based systems including Cygwin; they have extension .lib, in contrast to the .dll libraries that go to RUNTIME)
365+
INSTALL (
366+
TARGETS ${CPP_LIBRARY_NAME}
367+
EXPORT FESAPI_TARGETS
368+
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
369+
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
370+
)
371+
endif (NOT WITH_PYTHON_WRAPPING AND NOT WITH_DOTNET_WRAPPING AND NOT WITH_JAVA_WRAPPING)
365372

366-
INSTALL (
367-
FILES ${FESAPI_EML_2_0_HEADERS}
368-
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/fesapi/${EML_PREFIX_2_0}/
369-
COMPONENT fesapi_headers
370-
)
373+
if (WIN32)
374+
#PDB for debug
375+
INSTALL (
376+
FILES $<TARGET_PDB_FILE:${CPP_LIBRARY_NAME}>
377+
CONFIGURATIONS Debug RelWithDebInfo
378+
DESTINATION ${CMAKE_INSTALL_BINDIR}
379+
OPTIONAL
380+
)
381+
endif (WIN32)
371382

372383
# PropertyTypeMapping.xml
373384
INSTALL (
374385
FILES ${FESAPI_ROOT_DIR}/resources/PropertyKindMapping.xml
375-
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/fesapi/resources/
386+
DESTINATION ./resources/
376387
COMPONENT fesapi_runtime
377388
)
378389

0 commit comments

Comments
 (0)