Skip to content

CMake Cannot Find Multiple Source Files #9389

Closed

Description

@abdelrahmanhussein

Hi,

I am new to HHVM. I am using it to run OSS-Performance. I am in the phase of building HHVM from the source code. CMake cannot find the following files.

/home/user/new_workspace/hhvm/hphp/runtime/ext/gd/libgd/gd_webp.cpp
/home/user/new_workspace/hhvm/hphp/runtime/ext/gd/libgd/webpimg.cpp
/home/user/new_workspace/hhvm/hphp/runtime/ext/std/ext_std_closure.cpp
/home/user/new_workspace/hhvm/hphp/runtime/ext/std/ext_std_intrinsics.cpp
/home/user/new_workspace/hhvm/hphp/runtime/ext/fb/FBSerialize/FBSerialize.h

These errors were generated one at a time, meaning I get an error only for a certain file. I tried to locate it online where I would find it in an older branch then I copy it to the location where CMake is expecting to find this file.

This works then it gives me the error for the second file and so on..

Is this a bug or am I just doing something wrong?

Standalone code, or other way to reproduce the problem

This should not depend on installing any libraries or frameworks. Ideally, it should be possible to copy-paste this into a single file and reproduce the problem by running hhvm and/or hh_client

Steps to reproduce the behavior:

  1. Go to 'hhvm/build'
  2. run the following command:
cmake  -DMYSQL_UNIX_SOCK_ADDR=/var/run/mysqld/mysqld.sock ..

Expected behavior

Cmake to work.

Actual behavior

-- -latomic is required to link hhvm
CMake Deprecation Warning at CMake/HPHPFunctions.cmake:2 (cmake_policy):
  The OLD behavior for policy CMP0026 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  CMake/HHVMExtensionConfig.cmake:72 (include)
  hphp/runtime/ext/CMakeLists.txt:23 (include)


-- -latomic is required to link hhvm
-- Found LibNuma: /usr/lib/x86_64-linux-gnu/libnuma.so  
CMake Deprecation Warning at CMake/HPHPFunctions.cmake:2 (cmake_policy):
  The OLD behavior for policy CMP0026 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  CMake/HHVMExtensionConfig.cmake:72 (include)
  hphp/hhvm/CMakeLists.txt:1 (include)


-- Found gold: /usr/bin/gold
-- -latomic is required to link hhvm
CMake Warning (dev) at hphp/hhvm/CMakeLists.txt:47 (target_sources):
  Policy CMP0076 is not set: target_sources() command converts relative paths
  to absolute.  Run "cmake --help-policy CMP0076" for policy details.  Use
  the cmake_policy command to set the policy and suppress this warning.

  An interface source of target "hhvm" has a relative path.
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Configuring done
CMake Error at CMake/HPHPFunctions.cmake:406 (add_library):
  Cannot find source file:

    /home/user/new_workspace/hhvm/hphp/runtime/ext/fb/FBSerialize/FBSerialize.h

  Tried extensions .c .C .c++ .cc .cpp .cxx .cu .m .M .mm .h .hh .h++ .hm
  .hpp .hxx .in .txx
Call Stack (most recent call first):
  hphp/runtime/ext/CMakeLists.txt:41 (add_object_library)


CMake Error at CMake/HPHPFunctions.cmake:406 (add_library):
  No SOURCES given to target: hphp_runtime_ext
Call Stack (most recent call first):
  hphp/runtime/ext/CMakeLists.txt:41 (add_object_library)


CMake Generate step failed.  Build files cannot be regenerated correctly.

Environment

  • Operating system : Ubuntu 20.04.6 LTS
  • Installation method: Build from Source
  • Built from Source :n/A

Activity

  1. lexidor commented on Aug 24, 2023

    @lexidor
    Contributor

    Hi, I can give you some pointers, but I am also not able to build hhvm near master.

    The hhvm/packaging repo is able to build hhvm as it was at the start of this year. If you don't need the latest and greatest, you can build from source using that. It builds in a Docker container, so no special setup is required.

    I am hoping for either the ci in facebook/hhvm or hhvm/packaging to be updated to work with master.

  2. lexidor commented on Nov 14, 2023

    @lexidor
    Contributor

    One of the files that CMake can't find is:
    ext_std_closure.cpp
    Which has been renamed to:
    ext_core_closure.cpp and moved to the core directory "next door".

  3. lexidor commented on Jan 20, 2025

    @lexidor
    Contributor

    See CMake fixes on #9564

  4. lexidor commented on Jun 10, 2025

    @lexidor
    Contributor

    This issue has been fixed on #9564

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions