diff --git a/3rd/cjson/CMakeLists.txt b/3rd/cjson/CMakeLists.txt index 7f9279c1..2d1515d0 100644 --- a/3rd/cjson/CMakeLists.txt +++ b/3rd/cjson/CMakeLists.txt @@ -6,7 +6,7 @@ set(CMAKE_C_STANDARD 11) set(CMAKE_CXX_STANDARD 17) include_directories(${CMAKE_CURRENT_LIST_DIR}/include) -include_directories(${CMAKE_CURRENT_LIST_DIR}/../pocketpy/include) +include_directories(${CMAKE_CURRENT_LIST_DIR}/../../include) set(CMAKE_POSITION_INDEPENDENT_CODE ON) diff --git a/CMakeLists.txt b/CMakeLists.txt index d455718f..fbb92eb5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,8 +16,6 @@ else() endif() endif() -include_directories(${CMAKE_CURRENT_LIST_DIR}/include) - aux_source_directory(${CMAKE_CURRENT_LIST_DIR}/src POCKETPY_SRC) option(PK_USE_CJSON "" OFF) @@ -60,6 +58,36 @@ else() target_link_libraries(${PROJECT_EXE_NAME} ${CMAKE_DL_LIBS}) endif() +target_include_directories(${PROJECT_NAME} PUBLIC + $ + $ +) + if(PK_USE_CJSON) - target_link_libraries(${PROJECT_NAME} cjson) + target_link_libraries(${PROJECT_NAME} PRIVATE $) +endif() + +option(PK_INSTALL "Generate the install target" ON) +if (PK_INSTALL) + install( + TARGETS ${PROJECT_NAME} + EXPORT ${PROJECT_NAME}_target + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib + RUNTIME DESTINATION bin + ) + + install( + DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/ + DESTINATION include + FILES_MATCHING PATTERN "*.h" + PATTERN "typings" EXCLUDE + ) + + # generate config.cmake + install( + EXPORT ${PROJECT_NAME}_target + FILE ${PROJECT_NAME}-config.cmake + DESTINATION "share/${PROJECT_NAME}" + ) endif() diff --git a/run_cmake_install_test.sh b/run_cmake_install_test.sh new file mode 100644 index 00000000..1d12b549 --- /dev/null +++ b/run_cmake_install_test.sh @@ -0,0 +1,28 @@ +rm -rf install +mkdir -p install/build +cd install/build +cmake ../../ -DCMAKE_INSTALL_PREFIX=../pocketpy -DPK_USE_CJSON=ON -DPK_ENABLE_OS=ON +cmake --build . --target install --config Release -j 8 + +if [ -e "../pocketpy/lib/libpocketpy.so" ]; then + echo "Library installed successfully." +else + echo "Library installation failed." + exit 1 +fi + +if [ -e "../pocketpy/include/pocketpy.h" ]; then + echo "Header files installed successfully." +else + echo "Header files installation failed." + exit 1 +fi + +if [ -e "../pocketpy/share/pocketpy/pocketpy-config.cmake" ]; then + echo "Config file installed successfully." +else + echo "Config file installation failed." + exit 1 +fi + +echo "CMake install verified successfully."